d99c144b4373b7bc75f756f8aa19f895872659d6
[aaf/authz.git] / authz-client / src / main / xsd / certman_1_0.xsd
1 <!-- Used by AAF (ATT inc 2016) -->
2 <xs:schema 
3         xmlns:xs="http://www.w3.org/2001/XMLSchema" 
4         xmlns:certman="urn:certman:v1_0"
5         targetNamespace="urn:certman:v1_0" 
6         elementFormDefault="qualified">
7
8         <!-- jg 4/21/2016 New for Certificate Info  -->
9         <xs:element name="certInfo">
10                 <xs:complexType>
11                         <xs:sequence>
12                                 <!-- Base64 Encoded Private Key -->
13                                 <xs:element name="privatekey" type="xs:string" minOccurs="0" maxOccurs="1"/>
14                                 <!-- Base64 Encoded Certificate -->
15                                 <xs:element name="certs" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
16                                 <!-- Challenge Password (2 method Auth) -->
17                                 <xs:element name="challenge" type="xs:string" minOccurs="0" maxOccurs="1"/>
18                                 <!-- Notes from Server concerning Cert (not an error) -->
19                                 <xs:element name="notes" type="xs:string" minOccurs="0" maxOccurs="1"/>
20                         </xs:sequence>
21                 </xs:complexType>
22         </xs:element>
23         
24         <xs:complexType name="baseRequest">
25                 <xs:sequence>
26                         <xs:element name="mechid" type="xs:string" minOccurs="1" maxOccurs="1"/>
27                         <!-- Sponsor is only required if the caller is not Sponsor.  In that case, the calling ID must be delegated to do the work. -->
28                         <xs:element name="sponsor" type="xs:string" minOccurs="0" maxOccurs="1"/>
29                         <xs:element name="start" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
30                         <xs:element name="end" type="xs:date" minOccurs="1" maxOccurs="1"/>
31                 </xs:sequence>
32         </xs:complexType>
33
34         <xs:complexType name="specificRequest">
35                 <xs:complexContent>
36                         <xs:extension base="certman:baseRequest">
37                                 <xs:sequence>
38                                         <xs:element name="serial" type="xs:string" minOccurs="1" maxOccurs="1"/>
39                                         <!-- Certificate has been compromised or other security issue -->
40                                         <xs:element name="revoke" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false"/>
41                                 </xs:sequence>
42                         </xs:extension>
43                 </xs:complexContent>
44         </xs:complexType>
45                 
46         <xs:element name="certificateRequest">
47                 <xs:complexType>
48                         <xs:complexContent>
49                                 <xs:extension base="certman:baseRequest">
50                                         <xs:sequence>
51                                                 <!-- One FQDN is required.  Multiple driven by Policy -->
52                                                 <xs:element name="fqdns" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
53                                                 <!-- Optional Email for getting Public Certificate -->
54                                                 <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
55                                         </xs:sequence>
56                                 </xs:extension>
57                         </xs:complexContent>
58                 </xs:complexType>
59         </xs:element>
60
61         <xs:element name="certificateRenew">
62                 <xs:complexType>
63                         <xs:complexContent>
64                                 <xs:extension base="certman:specificRequest">
65                                         <xs:sequence>
66                                                 <!-- One FQDN is required.  Multiple driven by Policy -->
67                                                 <xs:element name="fqdns" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
68                                                 <!-- Challenge Password (for accessing manually) TODO Is it necessary? -->
69                                                 <xs:element name="challenge" type="xs:string" minOccurs="0" maxOccurs="1"/>
70                                                 <!-- Optional Email for getting Public Certificate -->
71                                                 <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
72                                         </xs:sequence>
73                                 </xs:extension>
74                         </xs:complexContent>
75                 </xs:complexType>
76         </xs:element>
77         
78         <xs:element name="certificateDrop">
79                 <xs:complexType>
80                         <xs:complexContent>
81                                 <xs:extension base="certman:specificRequest">
82                                         <xs:sequence>
83                                                 <!-- Challenge Password (for accessing manually) TODO Is it necessary? -->
84                                                 <xs:element name="challenge" type="xs:string" minOccurs="0" maxOccurs="1"/>
85                                         </xs:sequence>
86                                 </xs:extension>
87                         </xs:complexContent>
88                 </xs:complexType>
89         </xs:element>
90         
91         <!-- Placement Structures -->
92         
93         <xs:element name="artifacts">
94                 <xs:complexType>
95                         <xs:sequence>
96                                 <xs:element name="artifact" minOccurs="0" maxOccurs="unbounded"> 
97                                         <xs:complexType>
98                                                 <xs:sequence>
99                                                         <xs:element name="mechid" type="xs:string" minOccurs="1" maxOccurs="1"/>
100                                                         <xs:element name="machine" type="xs:string" minOccurs="0" maxOccurs="1" />
101                                                     <xs:element name="type" minOccurs="1" maxOccurs="3">
102                                                         <xs:simpleType>
103                                                                     <xs:restriction base="xs:string">
104                                                                       <xs:enumeration value="file"/>
105                                                                       <xs:enumeration value="jks"/>
106                                                                       <xs:enumeration value="print"/>
107                                                                     </xs:restriction>
108                                                             </xs:simpleType>
109                                                     </xs:element>
110                                                         <xs:element name="ca" type="xs:string" minOccurs="1" maxOccurs="1" />
111                                                     <xs:element name="dir" type="xs:string" minOccurs="1" maxOccurs="1"/>
112                                                         <xs:element name="os_user" type="xs:string" minOccurs="1" maxOccurs="1"/>
113                                                         <!-- Ignored on input, and set by TABLES.  However, returned  on output -->
114                                                         <xs:element name="sponsor" type="xs:string" minOccurs="0" maxOccurs="1" />
115                                                     <!-- Optional... if empty, will use MechID Namespace -->
116                                                     <xs:element name="appName" type="xs:string" minOccurs="0" maxOccurs="1"/>
117                                                     <!-- Optional... if empty, will notify Sponsor -->
118                                                     <xs:element name="notification" type="xs:string" minOccurs="0" maxOccurs="1"/>
119                                                     <!-- Optional... Days before auto renewal.  Min is 10.  Max is 1/3 expiration (60) -->
120                                                     <xs:element name="renewDays" type="xs:int" minOccurs="0" maxOccurs="1" default="30"/>
121                                                     
122                                                 </xs:sequence>
123                                         </xs:complexType>
124                                 </xs:element>
125                         </xs:sequence>
126                 </xs:complexType>
127         </xs:element>
128         
129         
130                                 
131 </xs:schema>