xref: /openbmc/bmcweb/features/redfish/schema/dmtf/json-schema/PCIeFunction.v1_6_0.json (revision f2a8e57ede74a8252100b2281e3f4d170aa69391)
1*f2a8e57eSGunnar Mills{
2*f2a8e57eSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.v1_6_0.json",
3*f2a8e57eSGunnar Mills    "$ref": "#/definitions/PCIeFunction",
4*f2a8e57eSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5*f2a8e57eSGunnar Mills    "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6*f2a8e57eSGunnar Mills    "definitions": {
7*f2a8e57eSGunnar Mills        "Actions": {
8*f2a8e57eSGunnar Mills            "additionalProperties": false,
9*f2a8e57eSGunnar Mills            "description": "The available actions for this resource.",
10*f2a8e57eSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
11*f2a8e57eSGunnar Mills            "patternProperties": {
12*f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13*f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
14*f2a8e57eSGunnar Mills                    "type": [
15*f2a8e57eSGunnar Mills                        "array",
16*f2a8e57eSGunnar Mills                        "boolean",
17*f2a8e57eSGunnar Mills                        "integer",
18*f2a8e57eSGunnar Mills                        "number",
19*f2a8e57eSGunnar Mills                        "null",
20*f2a8e57eSGunnar Mills                        "object",
21*f2a8e57eSGunnar Mills                        "string"
22*f2a8e57eSGunnar Mills                    ]
23*f2a8e57eSGunnar Mills                }
24*f2a8e57eSGunnar Mills            },
25*f2a8e57eSGunnar Mills            "properties": {
26*f2a8e57eSGunnar Mills                "Oem": {
27*f2a8e57eSGunnar Mills                    "$ref": "#/definitions/OemActions",
28*f2a8e57eSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
29*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource.",
30*f2a8e57eSGunnar Mills                    "versionAdded": "v1_1_0"
31*f2a8e57eSGunnar Mills                }
32*f2a8e57eSGunnar Mills            },
33*f2a8e57eSGunnar Mills            "type": "object"
34*f2a8e57eSGunnar Mills        },
35*f2a8e57eSGunnar Mills        "DeviceClass": {
36*f2a8e57eSGunnar Mills            "enum": [
37*f2a8e57eSGunnar Mills                "UnclassifiedDevice",
38*f2a8e57eSGunnar Mills                "MassStorageController",
39*f2a8e57eSGunnar Mills                "NetworkController",
40*f2a8e57eSGunnar Mills                "DisplayController",
41*f2a8e57eSGunnar Mills                "MultimediaController",
42*f2a8e57eSGunnar Mills                "MemoryController",
43*f2a8e57eSGunnar Mills                "Bridge",
44*f2a8e57eSGunnar Mills                "CommunicationController",
45*f2a8e57eSGunnar Mills                "GenericSystemPeripheral",
46*f2a8e57eSGunnar Mills                "InputDeviceController",
47*f2a8e57eSGunnar Mills                "DockingStation",
48*f2a8e57eSGunnar Mills                "Processor",
49*f2a8e57eSGunnar Mills                "SerialBusController",
50*f2a8e57eSGunnar Mills                "WirelessController",
51*f2a8e57eSGunnar Mills                "IntelligentController",
52*f2a8e57eSGunnar Mills                "SatelliteCommunicationsController",
53*f2a8e57eSGunnar Mills                "EncryptionController",
54*f2a8e57eSGunnar Mills                "SignalProcessingController",
55*f2a8e57eSGunnar Mills                "ProcessingAccelerators",
56*f2a8e57eSGunnar Mills                "NonEssentialInstrumentation",
57*f2a8e57eSGunnar Mills                "Coprocessor",
58*f2a8e57eSGunnar Mills                "UnassignedClass",
59*f2a8e57eSGunnar Mills                "Other"
60*f2a8e57eSGunnar Mills            ],
61*f2a8e57eSGunnar Mills            "enumDescriptions": {
62*f2a8e57eSGunnar Mills                "Bridge": "A bridge.",
63*f2a8e57eSGunnar Mills                "CommunicationController": "A communication controller.",
64*f2a8e57eSGunnar Mills                "Coprocessor": "A coprocessor.",
65*f2a8e57eSGunnar Mills                "DisplayController": "A display controller.",
66*f2a8e57eSGunnar Mills                "DockingStation": "A docking station.",
67*f2a8e57eSGunnar Mills                "EncryptionController": "An encryption controller.",
68*f2a8e57eSGunnar Mills                "GenericSystemPeripheral": "A generic system peripheral.",
69*f2a8e57eSGunnar Mills                "InputDeviceController": "An input device controller.",
70*f2a8e57eSGunnar Mills                "IntelligentController": "An intelligent controller.",
71*f2a8e57eSGunnar Mills                "MassStorageController": "A mass storage controller.",
72*f2a8e57eSGunnar Mills                "MemoryController": "A memory controller.",
73*f2a8e57eSGunnar Mills                "MultimediaController": "A multimedia controller.",
74*f2a8e57eSGunnar Mills                "NetworkController": "A network controller.",
75*f2a8e57eSGunnar Mills                "NonEssentialInstrumentation": "A non-essential instrumentation.",
76*f2a8e57eSGunnar Mills                "Other": "Other class.  The function Class Code needs to be verified.",
77*f2a8e57eSGunnar Mills                "ProcessingAccelerators": "A processing accelerators.",
78*f2a8e57eSGunnar Mills                "Processor": "A processor.",
79*f2a8e57eSGunnar Mills                "SatelliteCommunicationsController": "A satellite communications controller.",
80*f2a8e57eSGunnar Mills                "SerialBusController": "A serial bus controller.",
81*f2a8e57eSGunnar Mills                "SignalProcessingController": "A signal processing controller.",
82*f2a8e57eSGunnar Mills                "UnassignedClass": "An unassigned class.",
83*f2a8e57eSGunnar Mills                "UnclassifiedDevice": "An unclassified device.",
84*f2a8e57eSGunnar Mills                "WirelessController": "A wireless controller."
85*f2a8e57eSGunnar Mills            },
86*f2a8e57eSGunnar Mills            "type": "string"
87*f2a8e57eSGunnar Mills        },
88*f2a8e57eSGunnar Mills        "FunctionProtocol": {
89*f2a8e57eSGunnar Mills            "enum": [
90*f2a8e57eSGunnar Mills                "PCIe",
91*f2a8e57eSGunnar Mills                "CXL"
92*f2a8e57eSGunnar Mills            ],
93*f2a8e57eSGunnar Mills            "enumDescriptions": {
94*f2a8e57eSGunnar Mills                "CXL": "A PCIe function supporting CXL extensions.",
95*f2a8e57eSGunnar Mills                "PCIe": "A standard PCIe function."
96*f2a8e57eSGunnar Mills            },
97*f2a8e57eSGunnar Mills            "type": "string"
98*f2a8e57eSGunnar Mills        },
99*f2a8e57eSGunnar Mills        "FunctionType": {
100*f2a8e57eSGunnar Mills            "enum": [
101*f2a8e57eSGunnar Mills                "Physical",
102*f2a8e57eSGunnar Mills                "Virtual"
103*f2a8e57eSGunnar Mills            ],
104*f2a8e57eSGunnar Mills            "enumDescriptions": {
105*f2a8e57eSGunnar Mills                "Physical": "A physical PCIe function.",
106*f2a8e57eSGunnar Mills                "Virtual": "A virtual PCIe function."
107*f2a8e57eSGunnar Mills            },
108*f2a8e57eSGunnar Mills            "type": "string"
109*f2a8e57eSGunnar Mills        },
110*f2a8e57eSGunnar Mills        "Links": {
111*f2a8e57eSGunnar Mills            "additionalProperties": false,
112*f2a8e57eSGunnar Mills            "description": "The links to other resources that are related to this resource.",
113*f2a8e57eSGunnar Mills            "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.",
114*f2a8e57eSGunnar Mills            "patternProperties": {
115*f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
116*f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
117*f2a8e57eSGunnar Mills                    "type": [
118*f2a8e57eSGunnar Mills                        "array",
119*f2a8e57eSGunnar Mills                        "boolean",
120*f2a8e57eSGunnar Mills                        "integer",
121*f2a8e57eSGunnar Mills                        "number",
122*f2a8e57eSGunnar Mills                        "null",
123*f2a8e57eSGunnar Mills                        "object",
124*f2a8e57eSGunnar Mills                        "string"
125*f2a8e57eSGunnar Mills                    ]
126*f2a8e57eSGunnar Mills                }
127*f2a8e57eSGunnar Mills            },
128*f2a8e57eSGunnar Mills            "properties": {
129*f2a8e57eSGunnar Mills                "CXLLogicalDevice": {
130*f2a8e57eSGunnar Mills                    "anyOf": [
131*f2a8e57eSGunnar Mills                        {
132*f2a8e57eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/CXLLogicalDevice.json#/definitions/CXLLogicalDevice"
133*f2a8e57eSGunnar Mills                        },
134*f2a8e57eSGunnar Mills                        {
135*f2a8e57eSGunnar Mills                            "type": "null"
136*f2a8e57eSGunnar Mills                        }
137*f2a8e57eSGunnar Mills                    ],
138*f2a8e57eSGunnar Mills                    "description": "The link to the CXL logical device to which this function is assigned.",
139*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `CXLLogicalDevice` that represents the CXL logical device to which this PCIe function is assigned.",
140*f2a8e57eSGunnar Mills                    "readonly": true,
141*f2a8e57eSGunnar Mills                    "versionAdded": "v1_5_0"
142*f2a8e57eSGunnar Mills                },
143*f2a8e57eSGunnar Mills                "Drives": {
144*f2a8e57eSGunnar Mills                    "description": "An array of links to the drives that this PCIe function produces.",
145*f2a8e57eSGunnar Mills                    "items": {
146*f2a8e57eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive"
147*f2a8e57eSGunnar Mills                    },
148*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Drive` that represent the drives associated with this PCIe function.",
149*f2a8e57eSGunnar Mills                    "readonly": true,
150*f2a8e57eSGunnar Mills                    "type": "array"
151*f2a8e57eSGunnar Mills                },
152*f2a8e57eSGunnar Mills                "Drives@odata.count": {
153*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
154*f2a8e57eSGunnar Mills                },
155*f2a8e57eSGunnar Mills                "EthernetInterfaces": {
156*f2a8e57eSGunnar Mills                    "description": "An array of links to the Ethernet interfaces that this PCIe function produces.",
157*f2a8e57eSGunnar Mills                    "items": {
158*f2a8e57eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface"
159*f2a8e57eSGunnar Mills                    },
160*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `EthernetInterface` that represent the network interfaces associated with this PCIe function.",
161*f2a8e57eSGunnar Mills                    "readonly": true,
162*f2a8e57eSGunnar Mills                    "type": "array"
163*f2a8e57eSGunnar Mills                },
164*f2a8e57eSGunnar Mills                "EthernetInterfaces@odata.count": {
165*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
166*f2a8e57eSGunnar Mills                },
167*f2a8e57eSGunnar Mills                "MemoryDomains": {
168*f2a8e57eSGunnar Mills                    "description": "An array of links to the memory domains that the PCIe function produces.",
169*f2a8e57eSGunnar Mills                    "items": {
170*f2a8e57eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryDomain.json#/definitions/MemoryDomain"
171*f2a8e57eSGunnar Mills                    },
172*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `MemoryDomain` that represent the memory domains associated with this PCIe function.",
173*f2a8e57eSGunnar Mills                    "readonly": true,
174*f2a8e57eSGunnar Mills                    "type": "array",
175*f2a8e57eSGunnar Mills                    "versionAdded": "v1_5_0"
176*f2a8e57eSGunnar Mills                },
177*f2a8e57eSGunnar Mills                "MemoryDomains@odata.count": {
178*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
179*f2a8e57eSGunnar Mills                },
180*f2a8e57eSGunnar Mills                "NetworkDeviceFunctions": {
181*f2a8e57eSGunnar Mills                    "description": "An array of links to the network device functions that the PCIe function produces.",
182*f2a8e57eSGunnar Mills                    "items": {
183*f2a8e57eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
184*f2a8e57eSGunnar Mills                    },
185*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `NetworkDeviceFunction` that represent the network device functions associated with this PCIe function.",
186*f2a8e57eSGunnar Mills                    "readonly": true,
187*f2a8e57eSGunnar Mills                    "type": "array",
188*f2a8e57eSGunnar Mills                    "versionAdded": "v1_2_0"
189*f2a8e57eSGunnar Mills                },
190*f2a8e57eSGunnar Mills                "NetworkDeviceFunctions@odata.count": {
191*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
192*f2a8e57eSGunnar Mills                },
193*f2a8e57eSGunnar Mills                "Oem": {
194*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
195*f2a8e57eSGunnar Mills                    "description": "The OEM extension property.",
196*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
197*f2a8e57eSGunnar Mills                },
198*f2a8e57eSGunnar Mills                "PCIeDevice": {
199*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice",
200*f2a8e57eSGunnar Mills                    "description": "The link to the PCIe device on which this function resides.",
201*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `PCIeDevice` that represents the PCIe devices on which this function resides.",
202*f2a8e57eSGunnar Mills                    "readonly": true
203*f2a8e57eSGunnar Mills                },
204*f2a8e57eSGunnar Mills                "Processor": {
205*f2a8e57eSGunnar Mills                    "anyOf": [
206*f2a8e57eSGunnar Mills                        {
207*f2a8e57eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Processor.json#/definitions/Processor"
208*f2a8e57eSGunnar Mills                        },
209*f2a8e57eSGunnar Mills                        {
210*f2a8e57eSGunnar Mills                            "type": "null"
211*f2a8e57eSGunnar Mills                        }
212*f2a8e57eSGunnar Mills                    ],
213*f2a8e57eSGunnar Mills                    "description": "The link to a processor that is hosted on this PCIe function.",
214*f2a8e57eSGunnar Mills                    "longDescription": "This property shall link to a resource of type `Processor` that represents the processor that is hosted on this PCIe function.",
215*f2a8e57eSGunnar Mills                    "readonly": true,
216*f2a8e57eSGunnar Mills                    "versionAdded": "v1_4_0"
217*f2a8e57eSGunnar Mills                },
218*f2a8e57eSGunnar Mills                "StorageControllers": {
219*f2a8e57eSGunnar Mills                    "description": "An array of links to the storage controllers that this PCIe function produces.",
220*f2a8e57eSGunnar Mills                    "items": {
221*f2a8e57eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/StorageController"
222*f2a8e57eSGunnar Mills                    },
223*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain an array of links to referenceable members of type `StorageController` that represent the storage controllers associated with this PCIe function.",
224*f2a8e57eSGunnar Mills                    "readonly": true,
225*f2a8e57eSGunnar Mills                    "type": "array"
226*f2a8e57eSGunnar Mills                },
227*f2a8e57eSGunnar Mills                "StorageControllers@odata.count": {
228*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
229*f2a8e57eSGunnar Mills                }
230*f2a8e57eSGunnar Mills            },
231*f2a8e57eSGunnar Mills            "type": "object"
232*f2a8e57eSGunnar Mills        },
233*f2a8e57eSGunnar Mills        "OemActions": {
234*f2a8e57eSGunnar Mills            "additionalProperties": true,
235*f2a8e57eSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
236*f2a8e57eSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
237*f2a8e57eSGunnar Mills            "patternProperties": {
238*f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
239*f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
240*f2a8e57eSGunnar Mills                    "type": [
241*f2a8e57eSGunnar Mills                        "array",
242*f2a8e57eSGunnar Mills                        "boolean",
243*f2a8e57eSGunnar Mills                        "integer",
244*f2a8e57eSGunnar Mills                        "number",
245*f2a8e57eSGunnar Mills                        "null",
246*f2a8e57eSGunnar Mills                        "object",
247*f2a8e57eSGunnar Mills                        "string"
248*f2a8e57eSGunnar Mills                    ]
249*f2a8e57eSGunnar Mills                }
250*f2a8e57eSGunnar Mills            },
251*f2a8e57eSGunnar Mills            "properties": {},
252*f2a8e57eSGunnar Mills            "type": "object"
253*f2a8e57eSGunnar Mills        },
254*f2a8e57eSGunnar Mills        "PCIeFunction": {
255*f2a8e57eSGunnar Mills            "additionalProperties": false,
256*f2a8e57eSGunnar Mills            "description": "The `PCIeFunction` schema describes the properties of a PCIe function that is attached to a system.",
257*f2a8e57eSGunnar Mills            "longDescription": "This resource shall represent a PCIe function in a Redfish implementation.",
258*f2a8e57eSGunnar Mills            "patternProperties": {
259*f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
260*f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
261*f2a8e57eSGunnar Mills                    "type": [
262*f2a8e57eSGunnar Mills                        "array",
263*f2a8e57eSGunnar Mills                        "boolean",
264*f2a8e57eSGunnar Mills                        "integer",
265*f2a8e57eSGunnar Mills                        "number",
266*f2a8e57eSGunnar Mills                        "null",
267*f2a8e57eSGunnar Mills                        "object",
268*f2a8e57eSGunnar Mills                        "string"
269*f2a8e57eSGunnar Mills                    ]
270*f2a8e57eSGunnar Mills                }
271*f2a8e57eSGunnar Mills            },
272*f2a8e57eSGunnar Mills            "properties": {
273*f2a8e57eSGunnar Mills                "@odata.context": {
274*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
275*f2a8e57eSGunnar Mills                },
276*f2a8e57eSGunnar Mills                "@odata.etag": {
277*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
278*f2a8e57eSGunnar Mills                },
279*f2a8e57eSGunnar Mills                "@odata.id": {
280*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
281*f2a8e57eSGunnar Mills                },
282*f2a8e57eSGunnar Mills                "@odata.type": {
283*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
284*f2a8e57eSGunnar Mills                },
285*f2a8e57eSGunnar Mills                "Actions": {
286*f2a8e57eSGunnar Mills                    "$ref": "#/definitions/Actions",
287*f2a8e57eSGunnar Mills                    "description": "The available actions for this resource.",
288*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource.",
289*f2a8e57eSGunnar Mills                    "versionAdded": "v1_1_0"
290*f2a8e57eSGunnar Mills                },
291*f2a8e57eSGunnar Mills                "BusNumber": {
292*f2a8e57eSGunnar Mills                    "description": "The bus number of this PCIe function.",
293*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCIe bus number of the PCIe device function.  This property shall not be present if the PCIe device function is fabric-attached or is shared with multiple systems.",
294*f2a8e57eSGunnar Mills                    "pattern": "^0[xX][0-9a-fA-F]{2}$",
295*f2a8e57eSGunnar Mills                    "readonly": true,
296*f2a8e57eSGunnar Mills                    "type": [
297*f2a8e57eSGunnar Mills                        "string",
298*f2a8e57eSGunnar Mills                        "null"
299*f2a8e57eSGunnar Mills                    ],
300*f2a8e57eSGunnar Mills                    "versionAdded": "v1_6_0"
301*f2a8e57eSGunnar Mills                },
302*f2a8e57eSGunnar Mills                "ClassCode": {
303*f2a8e57eSGunnar Mills                    "description": "The Class Code of this PCIe function.",
304*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCI Class Code, Subclass, and Programming Interface of the PCIe device function in the order listed.",
305*f2a8e57eSGunnar Mills                    "pattern": "^0[xX]([0-9A-Fa-f]{2}){3}$",
306*f2a8e57eSGunnar Mills                    "readonly": true,
307*f2a8e57eSGunnar Mills                    "type": [
308*f2a8e57eSGunnar Mills                        "string",
309*f2a8e57eSGunnar Mills                        "null"
310*f2a8e57eSGunnar Mills                    ]
311*f2a8e57eSGunnar Mills                },
312*f2a8e57eSGunnar Mills                "Description": {
313*f2a8e57eSGunnar Mills                    "anyOf": [
314*f2a8e57eSGunnar Mills                        {
315*f2a8e57eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
316*f2a8e57eSGunnar Mills                        },
317*f2a8e57eSGunnar Mills                        {
318*f2a8e57eSGunnar Mills                            "type": "null"
319*f2a8e57eSGunnar Mills                        }
320*f2a8e57eSGunnar Mills                    ],
321*f2a8e57eSGunnar Mills                    "readonly": true
322*f2a8e57eSGunnar Mills                },
323*f2a8e57eSGunnar Mills                "DeviceClass": {
324*f2a8e57eSGunnar Mills                    "$ref": "#/definitions/DeviceClass",
325*f2a8e57eSGunnar Mills                    "description": "The class for this PCIe function.",
326*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the device class of the PCIe device function, such as storage, network, or memory.",
327*f2a8e57eSGunnar Mills                    "readonly": true
328*f2a8e57eSGunnar Mills                },
329*f2a8e57eSGunnar Mills                "DeviceId": {
330*f2a8e57eSGunnar Mills                    "description": "The Device ID of this PCIe function.",
331*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCI Device ID of the PCIe device function with the most significant byte shown first.",
332*f2a8e57eSGunnar Mills                    "pattern": "^0[xX]([0-9A-Fa-f]{2}){2}$",
333*f2a8e57eSGunnar Mills                    "readonly": true,
334*f2a8e57eSGunnar Mills                    "type": [
335*f2a8e57eSGunnar Mills                        "string",
336*f2a8e57eSGunnar Mills                        "null"
337*f2a8e57eSGunnar Mills                    ]
338*f2a8e57eSGunnar Mills                },
339*f2a8e57eSGunnar Mills                "DeviceNumber": {
340*f2a8e57eSGunnar Mills                    "description": "The device number of this PCIe function.",
341*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCIe device number of the PCIe device function.  This property shall not be present if the PCIe device function is fabric-attached or is shared with multiple systems.",
342*f2a8e57eSGunnar Mills                    "pattern": "^0[xX][0-1][0-9a-fA-F]{1}$",
343*f2a8e57eSGunnar Mills                    "readonly": true,
344*f2a8e57eSGunnar Mills                    "type": [
345*f2a8e57eSGunnar Mills                        "string",
346*f2a8e57eSGunnar Mills                        "null"
347*f2a8e57eSGunnar Mills                    ],
348*f2a8e57eSGunnar Mills                    "versionAdded": "v1_6_0"
349*f2a8e57eSGunnar Mills                },
350*f2a8e57eSGunnar Mills                "Enabled": {
351*f2a8e57eSGunnar Mills                    "description": "An indication of whether this PCIe device function is enabled.",
352*f2a8e57eSGunnar Mills                    "longDescription": "The value of this property shall indicate if this PCIe device function is enabled.",
353*f2a8e57eSGunnar Mills                    "readonly": false,
354*f2a8e57eSGunnar Mills                    "type": "boolean",
355*f2a8e57eSGunnar Mills                    "versionAdded": "v1_3_0"
356*f2a8e57eSGunnar Mills                },
357*f2a8e57eSGunnar Mills                "FunctionId": {
358*f2a8e57eSGunnar Mills                    "description": "The PCIe function number.",
359*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCIe function number within a given PCIe device.",
360*f2a8e57eSGunnar Mills                    "readonly": true,
361*f2a8e57eSGunnar Mills                    "type": [
362*f2a8e57eSGunnar Mills                        "integer",
363*f2a8e57eSGunnar Mills                        "null"
364*f2a8e57eSGunnar Mills                    ]
365*f2a8e57eSGunnar Mills                },
366*f2a8e57eSGunnar Mills                "FunctionNumber": {
367*f2a8e57eSGunnar Mills                    "description": "The function number of this PCIe function.",
368*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCIe function number of the PCIe device function.  This property shall not be present if the PCIe device function is fabric-attached or is shared with multiple systems.",
369*f2a8e57eSGunnar Mills                    "pattern": "^0[xX][0-7]$",
370*f2a8e57eSGunnar Mills                    "readonly": true,
371*f2a8e57eSGunnar Mills                    "type": [
372*f2a8e57eSGunnar Mills                        "string",
373*f2a8e57eSGunnar Mills                        "null"
374*f2a8e57eSGunnar Mills                    ],
375*f2a8e57eSGunnar Mills                    "versionAdded": "v1_6_0"
376*f2a8e57eSGunnar Mills                },
377*f2a8e57eSGunnar Mills                "FunctionProtocol": {
378*f2a8e57eSGunnar Mills                    "anyOf": [
379*f2a8e57eSGunnar Mills                        {
380*f2a8e57eSGunnar Mills                            "$ref": "#/definitions/FunctionProtocol"
381*f2a8e57eSGunnar Mills                        },
382*f2a8e57eSGunnar Mills                        {
383*f2a8e57eSGunnar Mills                            "type": "null"
384*f2a8e57eSGunnar Mills                        }
385*f2a8e57eSGunnar Mills                    ],
386*f2a8e57eSGunnar Mills                    "description": "The PCIe function protocol.",
387*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the protocol supported by this PCIe function.",
388*f2a8e57eSGunnar Mills                    "readonly": true,
389*f2a8e57eSGunnar Mills                    "versionAdded": "v1_5_0"
390*f2a8e57eSGunnar Mills                },
391*f2a8e57eSGunnar Mills                "FunctionType": {
392*f2a8e57eSGunnar Mills                    "$ref": "#/definitions/FunctionType",
393*f2a8e57eSGunnar Mills                    "description": "The type of the PCIe function.",
394*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the function type of the PCIe device function such as physical or virtual.",
395*f2a8e57eSGunnar Mills                    "readonly": true
396*f2a8e57eSGunnar Mills                },
397*f2a8e57eSGunnar Mills                "Id": {
398*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
399*f2a8e57eSGunnar Mills                    "readonly": true
400*f2a8e57eSGunnar Mills                },
401*f2a8e57eSGunnar Mills                "Links": {
402*f2a8e57eSGunnar Mills                    "$ref": "#/definitions/Links",
403*f2a8e57eSGunnar Mills                    "description": "The links to other resources that are related to this resource.",
404*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
405*f2a8e57eSGunnar Mills                },
406*f2a8e57eSGunnar Mills                "Name": {
407*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
408*f2a8e57eSGunnar Mills                    "readonly": true
409*f2a8e57eSGunnar Mills                },
410*f2a8e57eSGunnar Mills                "Oem": {
411*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
412*f2a8e57eSGunnar Mills                    "description": "The OEM extension property.",
413*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
414*f2a8e57eSGunnar Mills                },
415*f2a8e57eSGunnar Mills                "RevisionId": {
416*f2a8e57eSGunnar Mills                    "description": "The Revision ID of this PCIe function.",
417*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCI Revision ID of the PCIe device function.",
418*f2a8e57eSGunnar Mills                    "pattern": "^0[xX]([0-9A-Fa-f]{2}){1}$",
419*f2a8e57eSGunnar Mills                    "readonly": true,
420*f2a8e57eSGunnar Mills                    "type": [
421*f2a8e57eSGunnar Mills                        "string",
422*f2a8e57eSGunnar Mills                        "null"
423*f2a8e57eSGunnar Mills                    ]
424*f2a8e57eSGunnar Mills                },
425*f2a8e57eSGunnar Mills                "SegmentNumber": {
426*f2a8e57eSGunnar Mills                    "description": "The segment number of this PCIe function.",
427*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCIe segment number of the PCIe device function.  This property shall not be present if the PCIe device function is fabric-attached or is shared with multiple systems.",
428*f2a8e57eSGunnar Mills                    "pattern": "^0[xX][0-9a-fA-F]{4}$",
429*f2a8e57eSGunnar Mills                    "readonly": true,
430*f2a8e57eSGunnar Mills                    "type": [
431*f2a8e57eSGunnar Mills                        "string",
432*f2a8e57eSGunnar Mills                        "null"
433*f2a8e57eSGunnar Mills                    ],
434*f2a8e57eSGunnar Mills                    "versionAdded": "v1_6_0"
435*f2a8e57eSGunnar Mills                },
436*f2a8e57eSGunnar Mills                "Status": {
437*f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
438*f2a8e57eSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
439*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
440*f2a8e57eSGunnar Mills                },
441*f2a8e57eSGunnar Mills                "SubsystemId": {
442*f2a8e57eSGunnar Mills                    "description": "The Subsystem ID of this PCIe function.",
443*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCI Subsystem ID of the PCIe device function with the most significant byte shown first.",
444*f2a8e57eSGunnar Mills                    "pattern": "^0[xX]([0-9A-Fa-f]{2}){2}$",
445*f2a8e57eSGunnar Mills                    "readonly": true,
446*f2a8e57eSGunnar Mills                    "type": [
447*f2a8e57eSGunnar Mills                        "string",
448*f2a8e57eSGunnar Mills                        "null"
449*f2a8e57eSGunnar Mills                    ]
450*f2a8e57eSGunnar Mills                },
451*f2a8e57eSGunnar Mills                "SubsystemVendorId": {
452*f2a8e57eSGunnar Mills                    "description": "The Subsystem Vendor ID of this PCIe function.",
453*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCI Subsystem Vendor ID of the PCIe device function with the most significant byte shown first.",
454*f2a8e57eSGunnar Mills                    "pattern": "^0[xX]([0-9A-Fa-f]{2}){2}$",
455*f2a8e57eSGunnar Mills                    "readonly": true,
456*f2a8e57eSGunnar Mills                    "type": [
457*f2a8e57eSGunnar Mills                        "string",
458*f2a8e57eSGunnar Mills                        "null"
459*f2a8e57eSGunnar Mills                    ]
460*f2a8e57eSGunnar Mills                },
461*f2a8e57eSGunnar Mills                "VendorId": {
462*f2a8e57eSGunnar Mills                    "description": "The Vendor ID of this PCIe function.",
463*f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the PCI Vendor ID of the PCIe device function with the most significant byte shown first.",
464*f2a8e57eSGunnar Mills                    "pattern": "^0[xX]([0-9A-Fa-f]{2}){2}$",
465*f2a8e57eSGunnar Mills                    "readonly": true,
466*f2a8e57eSGunnar Mills                    "type": [
467*f2a8e57eSGunnar Mills                        "string",
468*f2a8e57eSGunnar Mills                        "null"
469*f2a8e57eSGunnar Mills                    ]
470*f2a8e57eSGunnar Mills                }
471*f2a8e57eSGunnar Mills            },
472*f2a8e57eSGunnar Mills            "required": [
473*f2a8e57eSGunnar Mills                "@odata.id",
474*f2a8e57eSGunnar Mills                "@odata.type",
475*f2a8e57eSGunnar Mills                "Id",
476*f2a8e57eSGunnar Mills                "Name"
477*f2a8e57eSGunnar Mills            ],
478*f2a8e57eSGunnar Mills            "type": "object"
479*f2a8e57eSGunnar Mills        }
480*f2a8e57eSGunnar Mills    },
481*f2a8e57eSGunnar Mills    "language": "en",
482*f2a8e57eSGunnar Mills    "owningEntity": "DMTF",
483*f2a8e57eSGunnar Mills    "release": "2024.1",
484*f2a8e57eSGunnar Mills    "title": "#PCIeFunction.v1_6_0.PCIeFunction"
485*f2a8e57eSGunnar Mills}