1<?xml version="1.0" encoding="UTF-8"?>
2<!---->
3<!--################################################################################       -->
4<!--# Redfish Schema:  TrustedComponent v1.3.1                                             -->
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="Validation.v1_0_0" Alias="Validation"/>
22    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
23  </edmx:Reference>
24  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
25    <edmx:Include Namespace="Resource"/>
26    <edmx:Include Namespace="Resource.v1_0_0"/>
27  </edmx:Reference>
28  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/CertificateCollection_v1.xml">
29    <edmx:Include Namespace="CertificateCollection"/>
30  </edmx:Reference>
31  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/SoftwareInventory_v1.xml">
32    <edmx:Include Namespace="SoftwareInventory"/>
33  </edmx:Reference>
34  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/ComponentIntegrity_v1.xml">
35    <edmx:Include Namespace="ComponentIntegrity"/>
36  </edmx:Reference>
37
38  <edmx:DataServices>
39
40    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent">
41      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
42      <Annotation Term="Redfish.Language" String="en"/>
43
44      <EntityType Name="TrustedComponent" BaseType="Resource.v1_0_0.Resource" Abstract="true">
45        <Annotation Term="OData.Description" String="The `TrustedComponent` resource represents a trusted device, such as a TPM."/>
46        <Annotation Term="OData.LongDescription" String="This resource shall represent a trusted component in a Redfish implementation."/>
47        <Annotation Term="Capabilities.InsertRestrictions">
48          <Record>
49            <PropertyValue Property="Insertable" Bool="false"/>
50          </Record>
51        </Annotation>
52        <Annotation Term="Capabilities.UpdateRestrictions">
53          <Record>
54            <PropertyValue Property="Updatable" Bool="true"/>
55          </Record>
56        </Annotation>
57        <Annotation Term="Capabilities.DeleteRestrictions">
58          <Record>
59            <PropertyValue Property="Deletable" Bool="false"/>
60          </Record>
61        </Annotation>
62        <Annotation Term="Redfish.Uris">
63          <Collection>
64            <String>/redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}</String>
65          </Collection>
66        </Annotation>
67      </EntityType>
68
69      <Action Name="TPMGetEventLog" IsBound="true">
70        <Annotation Term="OData.Description" String="This action retrieves the event log for TPM 2.0 devices."/>
71        <Annotation Term="OData.LongDescription" String="This action shall return the event log for TPM 2.0 devices."/>
72        <Parameter Name="TrustedComponent" Type="TrustedComponent.v1_0_0.Actions"/>
73        <ReturnType Type="TrustedComponent.v1_3_0.TPMGetEventLogResponse" Nullable="false"/>
74        <Annotation Term="Redfish.Revisions">
75          <Collection>
76            <Record>
77              <PropertyValue Property="Kind" EnumMember="Redfish.RevisionKind/Added"/>
78              <PropertyValue Property="Version" String="v1_3_0"/>
79            </Record>
80          </Collection>
81        </Annotation>
82      </Action>
83    </Schema>
84
85    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_0_0">
86      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
87      <Annotation Term="Redfish.Release" String="2022.2"/>
88
89      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.TrustedComponent">
90        <Property Name="Actions" Type="TrustedComponent.v1_0_0.Actions" Nullable="false">
91          <Annotation Term="OData.Description" String="The available actions for this resource."/>
92          <Annotation Term="OData.LongDescription" String="This property shall contain the available actions for this resource."/>
93        </Property>
94        <Property Name="UUID" Type="Resource.UUID">
95          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
96          <Annotation Term="OData.Description" String="The UUID for this trusted component."/>
97          <Annotation Term="OData.LongDescription" String="This property shall contain a universally unique identifier number for the trusted component."/>
98        </Property>
99        <Property Name="Status" Type="Resource.Status" Nullable="false">
100          <Annotation Term="OData.Description" String="The status and health of the resource and its subordinate or dependent resources."/>
101          <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the resource."/>
102        </Property>
103        <Property Name="TrustedComponentType" Type="TrustedComponent.v1_0_0.TrustedComponentType" Nullable="false">
104          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
105          <Annotation Term="OData.Description" String="The type of trusted component, such as any physical distinction about the trusted component."/>
106          <Annotation Term="OData.LongDescription" String="This property shall contain the type of trusted component."/>
107          <Annotation Term="Redfish.Required"/>
108        </Property>
109        <NavigationProperty Name="Certificates" Type="CertificateCollection.CertificateCollection" ContainsTarget="true" Nullable="false">
110          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
111          <Annotation Term="OData.Description" String="The link to a collection of device identity certificates of the trusted component."/>
112          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource collection of type `CertificateCollection` that contains device identity certificates of the trusted component."/>
113          <Annotation Term="OData.AutoExpandReferences"/>
114        </NavigationProperty>
115        <Property Name="Links" Type="TrustedComponent.v1_0_0.Links" Nullable="false">
116          <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
117          <Annotation Term="OData.LongDescription" String="This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."/>
118        </Property>
119        <Property Name="Manufacturer" Type="Edm.String">
120          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
121          <Annotation Term="OData.Description" String="The manufacturer of this trusted component."/>
122          <Annotation Term="OData.LongDescription" String="This property shall contain the name of the organization responsible for producing the trusted component.  This organization may be the entity from whom the trusted component is purchased, but this is not necessarily true."/>
123        </Property>
124        <Property Name="Model" Type="Edm.String">
125          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
126          <Annotation Term="OData.Description" String="The model number of the trusted component."/>
127          <Annotation Term="OData.LongDescription" String="This property shall contain the name by which the manufacturer generally refers to the trusted component."/>
128        </Property>
129        <Property Name="SKU" Type="Edm.String">
130          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
131          <Annotation Term="OData.Description" String="The SKU of the trusted component."/>
132          <Annotation Term="OData.LongDescription" String="This property shall contain the stock-keeping unit number for this trusted component."/>
133        </Property>
134        <Property Name="SerialNumber" Type="Edm.String">
135          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
136          <Annotation Term="OData.Description" String="The serial number of the trusted component."/>
137          <Annotation Term="OData.LongDescription" String="This property shall contain a manufacturer-allocated number that identifies the trusted component."/>
138        </Property>
139        <Property Name="PartNumber" Type="Edm.String">
140          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
141          <Annotation Term="OData.Description" String="The part number of the trusted component."/>
142          <Annotation Term="OData.LongDescription" String="This property shall contain a part number assigned by the organization that is responsible for producing or manufacturing the trusted component."/>
143        </Property>
144        <Property Name="FirmwareVersion" Type="Edm.String">
145          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
146          <Annotation Term="OData.Description" String="The software version of the active software image on the trusted component."/>
147          <Annotation Term="OData.LongDescription" String="This property shall contain a version number associated with the active software image on the trusted component."/>
148        </Property>
149      </EntityType>
150
151      <ComplexType Name="Actions">
152        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
153        <Annotation Term="OData.Description" String="The available actions for this resource."/>
154        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
155        <Property Name="Oem" Type="TrustedComponent.v1_0_0.OemActions" Nullable="false">
156          <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
157          <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific actions for this resource."/>
158        </Property>
159      </ComplexType>
160
161      <ComplexType Name="OemActions">
162        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
163        <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
164        <Annotation Term="OData.LongDescription" String="This type shall contain the available OEM-specific actions for this resource."/>
165      </ComplexType>
166
167      <EnumType Name="TrustedComponentType">
168        <Member Name="Discrete">
169          <Annotation Term="OData.Description" String="A discrete trusted component."/>
170          <Annotation Term="OData.LongDescription" String="This value shall indicate that the entity has a well-defined physical boundary within the chassis."/>
171        </Member>
172        <Member Name="Integrated">
173          <Annotation Term="OData.Description" String="An integrated trusted component."/>
174          <Annotation Term="OData.LongDescription" String="This value shall indicate that the entity is integrated into another device."/>
175        </Member>
176      </EnumType>
177
178      <ComplexType Name="Links" BaseType="Resource.Links">
179        <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
180        <Annotation Term="OData.LongDescription" String="This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."/>
181        <NavigationProperty Name="ComponentsProtected" Type="Collection(Resource.Item)">
182          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
183          <Annotation Term="OData.Description" String="An array of links to resources that the target component protects."/>
184          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources whose integrity is measured or reported by the trusted component."/>
185          <Annotation Term="OData.AutoExpandReferences"/>
186        </NavigationProperty>
187        <NavigationProperty Name="IntegratedInto" Type="Resource.Item" Nullable="false">
188          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
189          <Annotation Term="OData.Description" String="A link to a resource to which this trusted component is integrated."/>
190          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource to which this trusted component is physically integrated.  This property shall be present if `TrustedComponentType` contains `Integrated`."/>
191          <Annotation Term="OData.AutoExpandReferences"/>
192        </NavigationProperty>
193        <NavigationProperty Name="ComponentIntegrity" Type="Collection(ComponentIntegrity.ComponentIntegrity)">
194          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
195          <Annotation Term="OData.Description" String="An array of links to ComponentIntegrity resources for which the trusted component is responsible."/>
196          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type `ComponentIntegrity` that represent the communication established with the trusted component by other resources.  The `TargetComponentURI` property in the referenced `ComponentIntegrity` resources shall reference this trusted component."/>
197          <Annotation Term="OData.AutoExpandReferences"/>
198        </NavigationProperty>
199        <NavigationProperty Name="ActiveSoftwareImage" Type="SoftwareInventory.SoftwareInventory" Nullable="false">
200          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
201          <Annotation Term="OData.Description" String="The link to the software inventory resource that represents the active firmware image for this trusted component."/>
202          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type `SoftwareInventory` that represents the active firmware image for this trusted component."/>
203          <Annotation Term="OData.AutoExpandReferences"/>
204        </NavigationProperty>
205        <NavigationProperty Name="SoftwareImages" Type="Collection(SoftwareInventory.SoftwareInventory)">
206          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
207          <Annotation Term="OData.Description" String="The images that are associated with this trusted component."/>
208          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type `SoftwareInventory` that represent the firmware images that apply to this trusted component."/>
209          <Annotation Term="OData.AutoExpandReferences"/>
210        </NavigationProperty>
211      </ComplexType>
212    </Schema>
213
214    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_0_1">
215      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
216      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
217      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_0_0.TrustedComponent"/>
218    </Schema>
219
220    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_0_2">
221      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
222      <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."/>
223      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_0_1.TrustedComponent"/>
224    </Schema>
225
226    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_1_0">
227      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
228      <Annotation Term="Redfish.Release" String="2023.1"/>
229
230      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_0_0.TrustedComponent">
231        <Property Name="TPM" Type="TrustedComponent.v1_1_0.TPM" Nullable="false">
232          <Annotation Term="OData.Description" String="TPM-specific information for this trusted component."/>
233          <Annotation Term="OData.LongDescription" String="This property shall contain TPM-specific information for this trusted component.  This property shall only be present for TCG-defined TPM trusted components."/>
234        </Property>
235      </EntityType>
236
237      <ComplexType Name="TPM">
238        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
239        <Annotation Term="OData.Description" String="TPM-specific information for a trusted component."/>
240        <Annotation Term="OData.LongDescription" String="This property shall contain TPM-specific information for a trusted component."/>
241        <Property Name="HardwareInterfaceVendorID" Type="Edm.String">
242          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
243          <Annotation Term="OData.Description" String="The hardware interface vendor ID for this trusted component."/>
244          <Annotation Term="OData.LongDescription" String="This property shall contain the TCG-defined 'TPM Hardware Interface Vendor ID' for this trusted component with the most significant byte shown first."/>
245          <Annotation Term="Validation.Pattern" String="^0[xX]([0-9A-Fa-f]{2}){2}$"/>
246        </Property>
247        <Property Name="CapabilitiesVendorID" Type="Edm.String">
248          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
249          <Annotation Term="OData.Description" String="The capabilities vendor ID for this trusted component."/>
250          <Annotation Term="OData.LongDescription" String="This property shall contain an ASCII string of the 4-byte TCG-defined 'TPM Capabilities Vendor ID' for this trusted component."/>
251        </Property>
252      </ComplexType>
253    </Schema>
254
255    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_1_1">
256      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
257      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
258      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_1_0.TrustedComponent"/>
259    </Schema>
260
261    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_1_2">
262      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
263      <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."/>
264      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_1_1.TrustedComponent"/>
265    </Schema>
266
267    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_2_0">
268      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
269      <Annotation Term="Redfish.Release" String="2023.2"/>
270
271      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_1_0.TrustedComponent"/>
272
273      <ComplexType Name="Links" BaseType="TrustedComponent.v1_0_0.Links">
274        <NavigationProperty Name="Owner" Type="Resource.Item">
275          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
276          <Annotation Term="OData.Description" String="A link to the resource that owns this trusted component."/>
277          <Annotation Term="OData.LongDescription" String="This property shall contain a link to the resource that owns this trusted component.  In the case of TPMs, particularly in multiple chassis implementations, this is the resource used to establish a new PCR."/>
278        </NavigationProperty>
279      </ComplexType>
280    </Schema>
281
282    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_2_1">
283      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
284      <Annotation Term="OData.Description" String="This version was created to correct various typographical errors."/>
285      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_2_0.TrustedComponent"/>
286    </Schema>
287
288    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_2_2">
289      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
290      <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."/>
291      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_2_1.TrustedComponent"/>
292    </Schema>
293
294    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_3_0">
295      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
296      <Annotation Term="Redfish.Release" String="2023.3"/>
297      <Annotation Term="OData.Description" String="This version was created to add the `TPMGetEventLog` action to allow retrieval of a TPM event log."/>
298
299      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_2_1.TrustedComponent"/>
300
301      <ComplexType Name="TPMGetEventLogResponse">
302        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
303        <Annotation Term="OData.Description" String="The TPM event log."/>
304        <Annotation Term="OData.LongDescription" String="This object shall contain the TPM event log."/>
305        <Property Name="EventLog" Type="Edm.String" Nullable="false">
306          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
307          <Annotation Term="OData.Description" String="The Base64-encoded event log for the TPM."/>
308          <Annotation Term="OData.LongDescription" String="This property shall contain a Base64-encoded string of the entire event log defined in the 'Event Logging' section of the 'TCG PC Client Platform Firmware Profile Specification'."/>
309          <Annotation Term="Redfish.Required"/>
310        </Property>
311        <Property Name="Oem" Type="Resource.Oem" Nullable="false">
312          <Annotation Term="OData.Description" String="The OEM extension property."/>
313          <Annotation Term="OData.LongDescription" String="This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."/>
314        </Property>
315      </ComplexType>
316    </Schema>
317
318    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="TrustedComponent.v1_3_1">
319      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
320      <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."/>
321      <EntityType Name="TrustedComponent" BaseType="TrustedComponent.v1_3_0.TrustedComponent"/>
322    </Schema>
323
324  </edmx:DataServices>
325</edmx:Edmx>
326