1{
2    "$id": "http://redfish.dmtf.org/schemas/v1/TrustedComponent.v1_3_1.json",
3    "$ref": "#/definitions/TrustedComponent",
4    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5    "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6    "definitions": {
7        "Actions": {
8            "additionalProperties": false,
9            "description": "The available actions for this resource.",
10            "longDescription": "This type shall contain the available actions for this resource.",
11            "patternProperties": {
12                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13                    "description": "This property shall specify a valid odata or Redfish property.",
14                    "type": [
15                        "array",
16                        "boolean",
17                        "integer",
18                        "number",
19                        "null",
20                        "object",
21                        "string"
22                    ]
23                }
24            },
25            "properties": {
26                "#TrustedComponent.TPMGetEventLog": {
27                    "$ref": "#/definitions/TPMGetEventLog"
28                },
29                "Oem": {
30                    "$ref": "#/definitions/OemActions",
31                    "description": "The available OEM-specific actions for this resource.",
32                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
33                }
34            },
35            "type": "object"
36        },
37        "Links": {
38            "additionalProperties": false,
39            "description": "The links to other resources that are related to this resource.",
40            "longDescription": "This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, this resource.",
41            "patternProperties": {
42                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
43                    "description": "This property shall specify a valid odata or Redfish property.",
44                    "type": [
45                        "array",
46                        "boolean",
47                        "integer",
48                        "number",
49                        "null",
50                        "object",
51                        "string"
52                    ]
53                }
54            },
55            "properties": {
56                "ActiveSoftwareImage": {
57                    "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json#/definitions/SoftwareInventory",
58                    "description": "The link to the software inventory resource that represents the active firmware image for this trusted component.",
59                    "longDescription": "This property shall contain a link to a resource of type `SoftwareInventory` that represents the active firmware image for this trusted component.",
60                    "readonly": false
61                },
62                "ComponentIntegrity": {
63                    "description": "An array of links to ComponentIntegrity resources for which the trusted component is responsible.",
64                    "items": {
65                        "$ref": "http://redfish.dmtf.org/schemas/v1/ComponentIntegrity.json#/definitions/ComponentIntegrity"
66                    },
67                    "longDescription": "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.",
68                    "readonly": true,
69                    "type": "array"
70                },
71                "ComponentIntegrity@odata.count": {
72                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
73                },
74                "ComponentsProtected": {
75                    "description": "An array of links to resources that the target component protects.",
76                    "items": {
77                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef"
78                    },
79                    "longDescription": "This property shall contain an array of links to resources whose integrity is measured or reported by the trusted component.",
80                    "readonly": true,
81                    "type": "array"
82                },
83                "ComponentsProtected@odata.count": {
84                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
85                },
86                "IntegratedInto": {
87                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef",
88                    "description": "A link to a resource to which this trusted component is integrated.",
89                    "longDescription": "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`.",
90                    "readonly": true
91                },
92                "Oem": {
93                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
94                    "description": "The OEM extension property.",
95                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
96                },
97                "Owner": {
98                    "anyOf": [
99                        {
100                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef"
101                        },
102                        {
103                            "type": "null"
104                        }
105                    ],
106                    "description": "A link to the resource that owns this trusted component.",
107                    "longDescription": "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.",
108                    "readonly": true,
109                    "versionAdded": "v1_2_0"
110                },
111                "SoftwareImages": {
112                    "description": "The images that are associated with this trusted component.",
113                    "items": {
114                        "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json#/definitions/SoftwareInventory"
115                    },
116                    "longDescription": "This property shall contain an array of links to resources of type `SoftwareInventory` that represent the firmware images that apply to this trusted component.",
117                    "readonly": true,
118                    "type": "array"
119                },
120                "SoftwareImages@odata.count": {
121                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
122                }
123            },
124            "type": "object"
125        },
126        "OemActions": {
127            "additionalProperties": true,
128            "description": "The available OEM-specific actions for this resource.",
129            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
130            "patternProperties": {
131                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
132                    "description": "This property shall specify a valid odata or Redfish property.",
133                    "type": [
134                        "array",
135                        "boolean",
136                        "integer",
137                        "number",
138                        "null",
139                        "object",
140                        "string"
141                    ]
142                }
143            },
144            "properties": {},
145            "type": "object"
146        },
147        "TPM": {
148            "additionalProperties": false,
149            "description": "TPM-specific information for a trusted component.",
150            "longDescription": "This property shall contain TPM-specific information for a trusted component.",
151            "patternProperties": {
152                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
153                    "description": "This property shall specify a valid odata or Redfish property.",
154                    "type": [
155                        "array",
156                        "boolean",
157                        "integer",
158                        "number",
159                        "null",
160                        "object",
161                        "string"
162                    ]
163                }
164            },
165            "properties": {
166                "CapabilitiesVendorID": {
167                    "description": "The capabilities vendor ID for this trusted component.",
168                    "longDescription": "This property shall contain an ASCII string of the 4-byte TCG-defined 'TPM Capabilities Vendor ID' for this trusted component.",
169                    "readonly": true,
170                    "type": [
171                        "string",
172                        "null"
173                    ],
174                    "versionAdded": "v1_1_0"
175                },
176                "HardwareInterfaceVendorID": {
177                    "description": "The hardware interface vendor ID for this trusted component.",
178                    "longDescription": "This property shall contain the TCG-defined 'TPM Hardware Interface Vendor ID' for this trusted component with the most significant byte shown first.",
179                    "pattern": "^0[xX]([0-9A-Fa-f]{2}){2}$",
180                    "readonly": true,
181                    "type": [
182                        "string",
183                        "null"
184                    ],
185                    "versionAdded": "v1_1_0"
186                }
187            },
188            "type": "object"
189        },
190        "TPMGetEventLog": {
191            "actionResponse": {
192                "$ref": "#/definitions/TPMGetEventLogResponse"
193            },
194            "additionalProperties": false,
195            "description": "This action retrieves the event log for TPM 2.0 devices.",
196            "longDescription": "This action shall return the event log for TPM 2.0 devices.",
197            "parameters": {},
198            "patternProperties": {
199                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
200                    "description": "This property shall specify a valid odata or Redfish property.",
201                    "type": [
202                        "array",
203                        "boolean",
204                        "integer",
205                        "number",
206                        "null",
207                        "object",
208                        "string"
209                    ]
210                }
211            },
212            "properties": {
213                "target": {
214                    "description": "Link to invoke action",
215                    "format": "uri-reference",
216                    "type": "string"
217                },
218                "title": {
219                    "description": "Friendly action name",
220                    "type": "string"
221                }
222            },
223            "type": "object",
224            "versionAdded": "v1_3_0"
225        },
226        "TPMGetEventLogResponse": {
227            "additionalProperties": false,
228            "description": "The TPM event log.",
229            "longDescription": "This object shall contain the TPM event log.",
230            "patternProperties": {
231                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
232                    "description": "This property shall specify a valid odata or Redfish property.",
233                    "type": [
234                        "array",
235                        "boolean",
236                        "integer",
237                        "number",
238                        "null",
239                        "object",
240                        "string"
241                    ]
242                }
243            },
244            "properties": {
245                "EventLog": {
246                    "description": "The Base64-encoded event log for the TPM.",
247                    "longDescription": "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'.",
248                    "readonly": true,
249                    "type": "string",
250                    "versionAdded": "v1_3_0"
251                },
252                "Oem": {
253                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
254                    "description": "The OEM extension property.",
255                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements.",
256                    "versionAdded": "v1_3_0"
257                }
258            },
259            "required": [
260                "EventLog"
261            ],
262            "type": "object"
263        },
264        "TrustedComponent": {
265            "additionalProperties": false,
266            "description": "The `TrustedComponent` resource represents a trusted device, such as a TPM.",
267            "longDescription": "This resource shall represent a trusted component in a Redfish implementation.",
268            "patternProperties": {
269                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
270                    "description": "This property shall specify a valid odata or Redfish property.",
271                    "type": [
272                        "array",
273                        "boolean",
274                        "integer",
275                        "number",
276                        "null",
277                        "object",
278                        "string"
279                    ]
280                }
281            },
282            "properties": {
283                "@odata.context": {
284                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
285                },
286                "@odata.etag": {
287                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
288                },
289                "@odata.id": {
290                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
291                },
292                "@odata.type": {
293                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
294                },
295                "Actions": {
296                    "$ref": "#/definitions/Actions",
297                    "description": "The available actions for this resource.",
298                    "longDescription": "This property shall contain the available actions for this resource."
299                },
300                "Certificates": {
301                    "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection",
302                    "description": "The link to a collection of device identity certificates of the trusted component.",
303                    "longDescription": "This property shall contain a link to a resource collection of type `CertificateCollection` that contains device identity certificates of the trusted component.",
304                    "readonly": true
305                },
306                "Description": {
307                    "anyOf": [
308                        {
309                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
310                        },
311                        {
312                            "type": "null"
313                        }
314                    ],
315                    "readonly": true
316                },
317                "FirmwareVersion": {
318                    "description": "The software version of the active software image on the trusted component.",
319                    "longDescription": "This property shall contain a version number associated with the active software image on the trusted component.",
320                    "readonly": true,
321                    "type": [
322                        "string",
323                        "null"
324                    ]
325                },
326                "Id": {
327                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
328                    "readonly": true
329                },
330                "Links": {
331                    "$ref": "#/definitions/Links",
332                    "description": "The links to other resources that are related to this resource.",
333                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
334                },
335                "Manufacturer": {
336                    "description": "The manufacturer of this trusted component.",
337                    "longDescription": "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.",
338                    "readonly": true,
339                    "type": [
340                        "string",
341                        "null"
342                    ]
343                },
344                "Model": {
345                    "description": "The model number of the trusted component.",
346                    "longDescription": "This property shall contain the name by which the manufacturer generally refers to the trusted component.",
347                    "readonly": true,
348                    "type": [
349                        "string",
350                        "null"
351                    ]
352                },
353                "Name": {
354                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
355                    "readonly": true
356                },
357                "Oem": {
358                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
359                    "description": "The OEM extension property.",
360                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
361                },
362                "PartNumber": {
363                    "description": "The part number of the trusted component.",
364                    "longDescription": "This property shall contain a part number assigned by the organization that is responsible for producing or manufacturing the trusted component.",
365                    "readonly": true,
366                    "type": [
367                        "string",
368                        "null"
369                    ]
370                },
371                "SKU": {
372                    "description": "The SKU of the trusted component.",
373                    "longDescription": "This property shall contain the stock-keeping unit number for this trusted component.",
374                    "readonly": true,
375                    "type": [
376                        "string",
377                        "null"
378                    ]
379                },
380                "SerialNumber": {
381                    "description": "The serial number of the trusted component.",
382                    "longDescription": "This property shall contain a manufacturer-allocated number that identifies the trusted component.",
383                    "readonly": true,
384                    "type": [
385                        "string",
386                        "null"
387                    ]
388                },
389                "Status": {
390                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
391                    "description": "The status and health of the resource and its subordinate or dependent resources.",
392                    "longDescription": "This property shall contain any status or health properties of the resource."
393                },
394                "TPM": {
395                    "$ref": "#/definitions/TPM",
396                    "description": "TPM-specific information for this trusted component.",
397                    "longDescription": "This property shall contain TPM-specific information for this trusted component.  This property shall only be present for TCG-defined TPM trusted components.",
398                    "versionAdded": "v1_1_0"
399                },
400                "TrustedComponentType": {
401                    "$ref": "#/definitions/TrustedComponentType",
402                    "description": "The type of trusted component, such as any physical distinction about the trusted component.",
403                    "longDescription": "This property shall contain the type of trusted component.",
404                    "readonly": true
405                },
406                "UUID": {
407                    "anyOf": [
408                        {
409                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
410                        },
411                        {
412                            "type": "null"
413                        }
414                    ],
415                    "description": "The UUID for this trusted component.",
416                    "longDescription": "This property shall contain a universally unique identifier number for the trusted component.",
417                    "readonly": true
418                }
419            },
420            "required": [
421                "TrustedComponentType",
422                "@odata.id",
423                "@odata.type",
424                "Id",
425                "Name"
426            ],
427            "type": "object"
428        },
429        "TrustedComponentType": {
430            "enum": [
431                "Discrete",
432                "Integrated"
433            ],
434            "enumDescriptions": {
435                "Discrete": "A discrete trusted component.",
436                "Integrated": "An integrated trusted component."
437            },
438            "enumLongDescriptions": {
439                "Discrete": "This value shall indicate that the entity has a well-defined physical boundary within the chassis.",
440                "Integrated": "This value shall indicate that the entity is integrated into another device."
441            },
442            "type": "string"
443        }
444    },
445    "language": "en",
446    "owningEntity": "DMTF",
447    "release": "2023.3",
448    "title": "#TrustedComponent.v1_3_1.TrustedComponent"
449}