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