1<?xml version="1.0" encoding="UTF-8"?>
2<!---->
3<!--################################################################################       -->
4<!--# Redfish Schema:  CertificateService v1.0.5                                           -->
5<!--#                                                                                      -->
6<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
7<!--# available at http://www.dmtf.org/standards/redfish                                   -->
8<!--# Copyright 2014-2024 DMTF.                                                            -->
9<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
10<!--################################################################################       -->
11<!---->
12<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
13
14  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
15    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
16  </edmx:Reference>
17  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
18    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
19  </edmx:Reference>
20  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
21    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
22  </edmx:Reference>
23  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
24    <edmx:Include Namespace="Resource.v1_0_0"/>
25  </edmx:Reference>
26  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/CertificateLocations_v1.xml">
27    <edmx:Include Namespace="CertificateLocations"/>
28  </edmx:Reference>
29  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/CertificateCollection_v1.xml">
30    <edmx:Include Namespace="CertificateCollection"/>
31  </edmx:Reference>
32  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Certificate_v1.xml">
33    <edmx:Include Namespace="Certificate"/>
34  </edmx:Reference>
35
36  <edmx:DataServices>
37
38    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CertificateService">
39      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
40      <Annotation Term="Redfish.Language" String="en"/>
41
42      <EntityType Name="CertificateService" BaseType="Resource.v1_0_0.Resource" Abstract="true">
43        <Annotation Term="OData.Description" String="The `CertificateService` schema describes a certificate service that represents the actions available to manage certificates and links to the certificates."/>
44        <Annotation Term="OData.LongDescription" String="This resource shall represent the certificate service properties for a Redfish implementation."/>
45        <Annotation Term="Capabilities.InsertRestrictions">
46          <Record>
47            <PropertyValue Property="Insertable" Bool="false"/>
48          </Record>
49        </Annotation>
50        <Annotation Term="Capabilities.UpdateRestrictions">
51          <Record>
52            <PropertyValue Property="Updatable" Bool="false"/>
53          </Record>
54        </Annotation>
55        <Annotation Term="Capabilities.DeleteRestrictions">
56          <Record>
57            <PropertyValue Property="Deletable" Bool="false"/>
58          </Record>
59        </Annotation>
60        <Annotation Term="Redfish.Uris">
61          <Collection>
62            <String>/redfish/v1/CertificateService</String>
63          </Collection>
64        </Annotation>
65      </EntityType>
66
67      <Action Name="GenerateCSR" IsBound="true">
68        <Annotation Term="OData.Description" String="This action makes a certificate signing request."/>
69        <Annotation Term="OData.LongDescription" String="This action shall make a certificate signing request.  The response shall contain a signing request that a certificate authority (CA) will sign.  The service should retain the private key that was generated during this request for installation of the certificate.  The private key should not be part of the response."/>
70        <Parameter Name="CertificateService" Type="CertificateService.v1_0_0.Actions"/>
71        <Parameter Name="CommonName" Type="Edm.String" Nullable="false">
72          <Annotation Term="OData.Description" String="The fully qualified domain name of the component to secure."/>
73          <Annotation Term="OData.LongDescription" String="This parameter shall contain the fully qualified domain name of the component to secure, as defined by the RFC5280 'commonName' attribute."/>
74        </Parameter>
75        <Parameter Name="AlternativeNames" Type="Collection(Edm.String)">
76          <Annotation Term="OData.Description" String="The additional host names of the component to secure."/>
77          <Annotation Term="OData.LongDescription" String="This parameter shall contain an array of additional host names of the component to secure, as defined by the RFC5280 'subjectAltName' attribute."/>
78        </Parameter>
79        <Parameter Name="Organization" Type="Edm.String" Nullable="false">
80          <Annotation Term="OData.Description" String="The name of the organization making the request."/>
81          <Annotation Term="OData.LongDescription" String="This parameter shall contain the name of the organization making the request, as defined by the RFC5280 'organizationName' attribute."/>
82        </Parameter>
83        <Parameter Name="OrganizationalUnit" Type="Edm.String" Nullable="false">
84          <Annotation Term="OData.Description" String="The name of the unit or division of the organization making the request."/>
85          <Annotation Term="OData.LongDescription" String="This parameter shall contain the name of the unit or division of the organization making the request, as defined by the RFC5280 'organizationalUnitName' attribute."/>
86        </Parameter>
87        <Parameter Name="City" Type="Edm.String" Nullable="false">
88          <Annotation Term="OData.Description" String="The city or locality of the organization making the request."/>
89          <Annotation Term="OData.LongDescription" String="This parameter shall contain the city or locality of the organization making the request, as defined by the RFC5280 'localityName' attribute."/>
90        </Parameter>
91        <Parameter Name="State" Type="Edm.String" Nullable="false">
92          <Annotation Term="OData.Description" String="The state, province, or region of the organization making the request."/>
93          <Annotation Term="OData.LongDescription" String="This parameter shall contain the state, province, or region of the organization making the request, as defined by the RFC5280 'stateOrProvinceName' attribute."/>
94        </Parameter>
95        <Parameter Name="Country" Type="Edm.String" Nullable="false">
96          <Annotation Term="OData.Description" String="The two-letter country code of the organization making the request."/>
97          <Annotation Term="OData.LongDescription" String="This parameter shall contain the two-letter ISO code for the country of the organization making the request, as defined by the RFC5280 'countryName' attribute."/>
98        </Parameter>
99        <Parameter Name="Email" Type="Edm.String">
100          <Annotation Term="OData.Description" String="The email address of the contact within the organization making the request."/>
101          <Annotation Term="OData.LongDescription" String="This parameter shall contain the email address of the contact within the organization making the request, as defined by the RFC2985 'emailAddress' attribute."/>
102        </Parameter>
103        <Parameter Name="KeyPairAlgorithm" Type="Edm.String">
104          <Annotation Term="OData.Description" String="The type of key-pair for use with signing algorithms."/>
105          <Annotation Term="OData.LongDescription" String="This parameter shall contain the type of key-pair for use with signing algorithms.  The allowable values for this parameter shall be the strings in the 'Algorithm Name' field of the 'TPM_ALG_ID Constants' table within the 'Trusted Computing Group Algorithm Registry'."/>
106        </Parameter>
107        <Parameter Name="KeyBitLength" Type="Edm.Int64">
108          <Annotation Term="OData.Description" String="The length of the key, in bits, if needed based on the `KeyPairAlgorithm` parameter value."/>
109          <Annotation Term="OData.LongDescription" String="This parameter shall contain the length of the key, in bits, if needed based on the `KeyPairAlgorithm` parameter value."/>
110        </Parameter>
111        <Parameter Name="KeyCurveId" Type="Edm.String">
112          <Annotation Term="OData.Description" String="The curve ID to use with the key, if needed based on the `KeyPairAlgorithm` parameter value."/>
113          <Annotation Term="OData.LongDescription" String="This parameter shall contain the curve ID to use with the key, if needed based on the `KeyPairAlgorithm` parameter value.  The allowable values for this parameter shall be the strings in the 'Name' field of the 'TPM_ECC_CURVE Constants' table within the 'Trusted Computing Group Algorithm Registry'."/>
114        </Parameter>
115        <Parameter Name="CertificateCollection" Type="CertificateCollection.CertificateCollection" Nullable="false">
116          <Annotation Term="OData.Description" String="The link to the certificate collection where the certificate is installed after the certificate authority (CA) signs the certificate."/>
117          <Annotation Term="OData.LongDescription" String="This parameter shall contain a link to a resource collection of type `CertificateCollection` where the certificate is installed after the certificate authority (CA) signs the certificate."/>
118        </Parameter>
119        <Parameter Name="KeyUsage" Type="Collection(Certificate.KeyUsage)">
120          <Annotation Term="OData.Description" String="The usage of the key contained in the certificate."/>
121          <Annotation Term="OData.LongDescription" String="This parameter shall contain the usage of the key contained in the certificate.  If the client does not provide this value, the service can determine the appropriate key usage settings in the certificate signing request."/>
122        </Parameter>
123        <Parameter Name="Surname" Type="Edm.String">
124          <Annotation Term="OData.Description" String="The surname of the user making the request."/>
125          <Annotation Term="OData.LongDescription" String="This parameter shall contain the surname of the user making the request, as defined by the RFC5280 'surname' attribute."/>
126        </Parameter>
127        <Parameter Name="GivenName" Type="Edm.String">
128          <Annotation Term="OData.Description" String="The given name of the user making the request."/>
129          <Annotation Term="OData.LongDescription" String="This parameter shall contain the given name of the user making the request, as defined by the RFC5280 'givenName' attribute."/>
130        </Parameter>
131        <Parameter Name="Initials" Type="Edm.String">
132          <Annotation Term="OData.Description" String="The initials of the user making the request."/>
133          <Annotation Term="OData.LongDescription" String="This parameter shall contain the initials of the user making the request, as defined by the RFC5280 'initials' attribute."/>
134        </Parameter>
135        <Parameter Name="ChallengePassword" Type="Edm.String">
136          <Annotation Term="OData.Description" String="The challenge password to apply to the certificate for revocation requests."/>
137          <Annotation Term="OData.LongDescription" String="This property shall contain the challenge password to apply to the certificate for revocation requests as defined by the RFC2985 'challengePassword' attribute."/>
138        </Parameter>
139        <Parameter Name="UnstructuredName" Type="Edm.String">
140          <Annotation Term="OData.Description" String="The unstructured name of the subject."/>
141          <Annotation Term="OData.LongDescription" String="This property shall contain the unstructured name of the subject, as defined by the RFC2985 'unstructuredName' attribute."/>
142        </Parameter>
143        <Parameter Name="ContactPerson" Type="Edm.String">
144          <Annotation Term="OData.Description" String="The name of the user making the request."/>
145          <Annotation Term="OData.LongDescription" String="This property shall contain the name of the user making the request, as defined by the RFC5280 'name' attribute."/>
146        </Parameter>
147        <ReturnType Type="CertificateService.v1_0_0.GenerateCSRResponse" Nullable="false"/>
148      </Action>
149
150      <Action Name="ReplaceCertificate" IsBound="true">
151        <Annotation Term="OData.Description" String="This action replaces a certificate."/>
152        <Annotation Term="OData.LongDescription" String="This action shall replace a certificate.  The `Location` header in the response shall contain the URI of the new certificate resource."/>
153        <Parameter Name="CertificateService" Type="CertificateService.v1_0_0.Actions"/>
154        <Parameter Name="CertificateString" Type="Edm.String" Nullable="false">
155          <Annotation Term="OData.Description" String="The string for the certificate."/>
156          <Annotation Term="OData.LongDescription" String="This parameter shall contain the string of the certificate, and the format shall follow the requirements specified by the `CertificateType` parameter value.  If the certificate contains any private keys, they shall be removed from the string in responses.  If the service does not know the private key for the certificate and it is needed to use the certificate, the client shall provide the private key as part of the string in the `POST` request."/>
157        </Parameter>
158        <Parameter Name="CertificateType" Type="Certificate.CertificateType" Nullable="false">
159          <Annotation Term="OData.Description" String="The format of the certificate."/>
160          <Annotation Term="OData.LongDescription" String="This parameter shall contain the format type for the certificate."/>
161        </Parameter>
162        <Parameter Name="CertificateUri" Type="Certificate.Certificate" Nullable="false">
163          <Annotation Term="OData.Description" String="The link to the certificate that is being replaced."/>
164          <Annotation Term="OData.LongDescription" String="This parameter shall contain a link to a resource of type `Certificate` that is being replaced."/>
165        </Parameter>
166      </Action>
167    </Schema>
168
169    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CertificateService.v1_0_0">
170      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
171      <Annotation Term="Redfish.Release" String="2018.3"/>
172
173      <EntityType Name="CertificateService" BaseType="CertificateService.CertificateService">
174        <Property Name="Actions" Type="CertificateService.v1_0_0.Actions" Nullable="false">
175          <Annotation Term="OData.Description" String="The available actions for this resource."/>
176          <Annotation Term="OData.LongDescription" String="This property shall contain the available actions for this resource."/>
177        </Property>
178        <NavigationProperty Name="CertificateLocations" Type="CertificateLocations.CertificateLocations" ContainsTarget="true" Nullable="false">
179          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
180          <Annotation Term="OData.Description" String="The information about the location of certificates."/>
181          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type `CertificateLocations`."/>
182          <Annotation Term="OData.AutoExpandReferences"/>
183        </NavigationProperty>
184      </EntityType>
185
186      <ComplexType Name="Actions">
187        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
188        <Annotation Term="OData.Description" String="The available actions for this resource."/>
189        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
190        <Property Name="Oem" Type="CertificateService.v1_0_0.OemActions" Nullable="false">
191          <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
192          <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific actions for this resource."/>
193        </Property>
194      </ComplexType>
195
196      <ComplexType Name="OemActions">
197        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
198        <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
199        <Annotation Term="OData.LongDescription" String="This type shall contain the available OEM-specific actions for this resource."/>
200      </ComplexType>
201
202      <ComplexType Name="GenerateCSRResponse">
203        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
204        <Annotation Term="OData.Description" String="The response body for the `GenerateCSR` action."/>
205        <Annotation Term="OData.LongDescription" String="This type shall contain the properties found in the response body for the `GenerateCSR` action."/>
206        <NavigationProperty Name="CertificateCollection" Type="CertificateCollection.CertificateCollection" Nullable="false">
207          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
208          <Annotation Term="OData.Description" String="The link to the certificate collection where the certificate is installed."/>
209          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type `CertificateCollection` where the certificate is installed after the certificate authority (CA) has signed the certificate."/>
210          <Annotation Term="Redfish.Required"/>
211        </NavigationProperty>
212        <Property Name="CSRString" Type="Edm.String" Nullable="false">
213          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
214          <Annotation Term="OData.Description" String="The string for the certificate signing request."/>
215          <Annotation Term="OData.LongDescription" String="This property shall contain the Privacy Enhanced Mail (PEM)-encoded string, which contains RFC2986-specified structures, of the certificate signing request.  The private key should not be part of the string."/>
216          <Annotation Term="Redfish.Required"/>
217        </Property>
218      </ComplexType>
219    </Schema>
220
221    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CertificateService.v1_0_1">
222      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
223      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that URI properties use the uri-reference format."/>
224      <EntityType Name="CertificateService" BaseType="CertificateService.v1_0_0.CertificateService"/>
225    </Schema>
226
227    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CertificateService.v1_0_2">
228      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
229      <Annotation Term="OData.Description" String="This version was created to update the description of `CertificateString`.  It was also created to update descriptions that this schema defines."/>
230      <EntityType Name="CertificateService" BaseType="CertificateService.v1_0_1.CertificateService"/>
231    </Schema>
232
233    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CertificateService.v1_0_3">
234      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
235      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
236      <EntityType Name="CertificateService" BaseType="CertificateService.v1_0_2.CertificateService"/>
237    </Schema>
238
239    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CertificateService.v1_0_4">
240      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
241      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
242      <EntityType Name="CertificateService" BaseType="CertificateService.v1_0_3.CertificateService"/>
243    </Schema>
244
245    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CertificateService.v1_0_5">
246      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
247      <Annotation Term="OData.Description" String="This version was created to force the regeneration of OpenAPI schemas to properly express nullable properties with external references.  It was also created to correct various typographical errors."/>
248      <EntityType Name="CertificateService" BaseType="CertificateService.v1_0_4.CertificateService"/>
249    </Schema>
250
251  </edmx:DataServices>
252</edmx:Edmx>
253