2020-03-27 09:03:43 -04:00
|
|
|
<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
|
|
elementFormDefault="qualified"
|
|
|
|
attributeFormDefault="unqualified">
|
|
|
|
|
2020-03-29 01:45:33 -04:00
|
|
|
<xs:include schemaLocation="./gpg.xsd"/>
|
2020-03-27 09:03:43 -04:00
|
|
|
<xs:include schemaLocation="./net.xsd"/>
|
|
|
|
<xs:include schemaLocation="./std.xsd"/>
|
|
|
|
<xs:include schemaLocation="./unix.xsd"/>
|
|
|
|
|
2020-03-29 01:45:33 -04:00
|
|
|
<xs:complexType name="t_vaultpass_auth_plain">
|
2020-03-27 09:03:43 -04:00
|
|
|
<xs:choice minOccurs="1" maxOccurs="1">
|
|
|
|
<xs:element name="appRole">
|
|
|
|
<xs:complexType>
|
|
|
|
<xs:all>
|
|
|
|
<xs:element name="role" type="xs:token" minOccurs="1" maxOccurs="1"/>
|
|
|
|
<xs:element name="secret" type="xs:token" minOccurs="1" maxOccurs="1"/>
|
|
|
|
</xs:all>
|
|
|
|
</xs:complexType>
|
|
|
|
</xs:element>
|
|
|
|
<!-- We don't support Boto3 because it requires an external session object. -->
|
|
|
|
<!-- We won't support EC2 Metadata auth unless requested because it's HELL complex. -->
|
|
|
|
<!-- TODO -->
|
|
|
|
<!--
|
|
|
|
<xs:element name="aws">
|
|
|
|
<xs:complexType>
|
|
|
|
<xs:choice minOccurs="1" maxOccurs="1">
|
|
|
|
<xs:element name="iam">
|
|
|
|
<xs:complexType>
|
|
|
|
<xs:choice minOccurs="1" maxOccurs="1">
|
|
|
|
<xs:element name="iamKey">
|
|
|
|
<xs:complexType>
|
|
|
|
<xs:all>
|
|
|
|
<xs:element name="keyID" type="xs:token" minOccurs="1" maxOccurs="1"/>
|
|
|
|
<xs:element name="key" type="xs:token" minOccurs="1" maxOccurs="1"/>
|
|
|
|
<xs:element name="sessionToken" type="xs:token" minOccurs="0"
|
|
|
|
maxOccurs="1"/>
|
|
|
|
</xs:all>
|
|
|
|
</xs:complexType>
|
|
|
|
</xs:element>
|
|
|
|
<xs:element name="iamMetadata">
|
|
|
|
<xs:complexType>
|
|
|
|
<xs:all>
|
|
|
|
<xs:element name="urlBase" type="t_net_http_basic_uri" minOccurs="1"
|
|
|
|
maxOccurs="1"/>
|
|
|
|
<xs:element name="role" type="xs:token" minOccurs="1" maxOccurs="1"/>
|
|
|
|
</xs:all>
|
|
|
|
</xs:complexType>
|
|
|
|
</xs:element>
|
|
|
|
</xs:choice>
|
|
|
|
</xs:complexType>
|
|
|
|
</xs:element>
|
|
|
|
</xs:choice>
|
|
|
|
</xs:complexType>
|
|
|
|
</xs:element>
|
|
|
|
-->
|
|
|
|
<!-- TODO: if popularly requested.
|
|
|
|
They're pretty complex/messy and/or require extra configuration in Vault. -->
|
|
|
|
<!--
|
|
|
|
<xs:element name="azure"/>
|
|
|
|
<xs:element name="gcp"/>
|
|
|
|
<xs:element name="github"/>
|
|
|
|
<xs:element name="kubernetes"/>
|
|
|
|
-->
|
|
|
|
<!-- Requires extra configuration but it's probably pretty common, so I'll enable it. -->
|
|
|
|
<xs:element name="ldap">
|
|
|
|
<xs:complexType>
|
|
|
|
<xs:all>
|
|
|
|
<xs:element name="username" type="xs:token" minOccurs="1" maxOccurs="1"/>
|
|
|
|
<xs:element name="password" type="xs:token" minOccurs="1" maxOccurs="1"/>
|
|
|
|
<xs:element name="mountPoint" type="xs:token" minOccurs="0" maxOccurs="1" default="ldap"/>
|
|
|
|
</xs:all>
|
|
|
|
</xs:complexType>
|
|
|
|
</xs:element>
|
|
|
|
<!-- No longer supported upstream by HashiCorp. -->
|
|
|
|
<!--
|
|
|
|
<xs:element name="mfa"/>
|
|
|
|
-->
|
|
|
|
<!-- TODO: if popularly requested. -->
|
|
|
|
<!--
|
|
|
|
<xs:element name="okta"/>
|
|
|
|
-->
|
|
|
|
<xs:element name="token">
|
|
|
|
<xs:complexType>
|
2020-03-27 12:16:43 -04:00
|
|
|
<xs:simpleContent>
|
|
|
|
<xs:extension base="xs:token">
|
|
|
|
<xs:attribute name="source" type="t_vaultpass_tokensource" use="optional"/>
|
|
|
|
</xs:extension>
|
|
|
|
</xs:simpleContent>
|
2020-03-27 09:03:43 -04:00
|
|
|
</xs:complexType>
|
|
|
|
</xs:element>
|
2020-03-29 01:45:33 -04:00
|
|
|
<xs:element name="userpass">
|
|
|
|
<xs:complexType>
|
|
|
|
<xs:all>
|
|
|
|
<xs:element name="username" type="xs:token" minOccurs="1" maxOccurs="1"/>
|
|
|
|
<xs:element name="password" type="xs:token" minOccurs="1" maxOccurs="1"/>
|
|
|
|
<xs:element name="mountPoint" type="xs:token" minOccurs="0" maxOccurs="1" default="userpass"/>
|
|
|
|
</xs:all>
|
|
|
|
</xs:complexType>
|
|
|
|
</xs:element>
|
2020-03-27 09:03:43 -04:00
|
|
|
</xs:choice>
|
|
|
|
</xs:complexType>
|
2020-03-27 12:16:43 -04:00
|
|
|
|
2020-03-30 01:59:42 -04:00
|
|
|
<xs:simpleType name="t_vaultpass_mount_path">
|
|
|
|
<xs:restriction base="xs:token">
|
|
|
|
<!-- I can't believe Vault accepts this charset for mount names. -->
|
|
|
|
<xs:pattern value="[A-Za-z0-9!"#$%&'()*+,./:;=<>\?\\@\[\]\^_`{|}~-]+"/>
|
|
|
|
<xs:whiteSpace value="collapse"/>
|
|
|
|
</xs:restriction>
|
|
|
|
</xs:simpleType>
|
|
|
|
|
|
|
|
<xs:complexType name="t_vaultpass_mount">
|
|
|
|
<xs:simpleContent>
|
|
|
|
<xs:extension base="t_vaultpass_mount_path">
|
|
|
|
<xs:attribute name="type" use="optional" default="kv2">
|
|
|
|
<xs:simpleType>
|
|
|
|
<xs:restriction base="xs:token">
|
|
|
|
<xs:enumeration value="cubbyhole"/>
|
2020-03-31 16:17:17 -04:00
|
|
|
<xs:enumeration value="kv1"/>
|
2020-03-30 01:59:42 -04:00
|
|
|
<xs:enumeration value="kv2"/>
|
|
|
|
<!-- TODO: can any of the below be enabled? -->
|
|
|
|
<!-- more at .../ui/vault/settings/mount-secret-backend -->
|
|
|
|
<!--
|
|
|
|
<xs:enumeration value="pki"/>
|
|
|
|
<xs:enumeration value="ssh"/>
|
|
|
|
<xs:enumeration value="transit"/>
|
|
|
|
<xs:enumeration value="totp"/>
|
|
|
|
-->
|
|
|
|
</xs:restriction>
|
|
|
|
</xs:simpleType>
|
|
|
|
</xs:attribute>
|
|
|
|
</xs:extension>
|
|
|
|
</xs:simpleContent>
|
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="t_vaultpass_star_gpg">
|
|
|
|
<xs:simpleContent>
|
|
|
|
<xs:extension base="t_unix_filepath">
|
|
|
|
<xs:attribute name="gpgHome" type="t_unix_filepath" use="optional"/>
|
|
|
|
</xs:extension>
|
|
|
|
</xs:simpleContent>
|
|
|
|
</xs:complexType>
|
|
|
|
|
2020-03-27 09:03:43 -04:00
|
|
|
<xs:simpleType name="t_vaultpass_tokensource">
|
2020-03-29 01:45:33 -04:00
|
|
|
<xs:union memberTypes="t_std_envvar t_unix_filepath"/>
|
2020-03-27 09:03:43 -04:00
|
|
|
</xs:simpleType>
|
|
|
|
|
|
|
|
</xs:schema>
|