1{
2    "$id": "http://redfish.dmtf.org/schemas/v1/PrivilegeRegistry.v1_1_5.json",
3    "$ref": "#/definitions/PrivilegeRegistry",
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                "Oem": {
27                    "$ref": "#/definitions/OemActions",
28                    "description": "The available OEM-specific actions for this resource.",
29                    "longDescription": "This property shall contain the available OEM-specific actions for this resource.",
30                    "versionAdded": "v1_1_0"
31                }
32            },
33            "type": "object"
34        },
35        "Mapping": {
36            "additionalProperties": false,
37            "description": "The mapping between a resource type and the relevant privileges that accesses the resource.",
38            "longDescription": "This type shall describe a mapping between a resource type and the relevant privileges that accesses the resource.",
39            "patternProperties": {
40                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
41                    "description": "This property shall specify a valid odata or Redfish property.",
42                    "type": [
43                        "array",
44                        "boolean",
45                        "integer",
46                        "number",
47                        "null",
48                        "object",
49                        "string"
50                    ]
51                }
52            },
53            "properties": {
54                "Entity": {
55                    "description": "The resource name, such as `Manager`.",
56                    "longDescription": "This property shall contain the resource name, such as `Manager`.",
57                    "readonly": true,
58                    "type": "string"
59                },
60                "OperationMap": {
61                    "$ref": "#/definitions/OperationMap",
62                    "description": "List mapping between HTTP methods and privilege required for the resource.",
63                    "longDescription": "This property shall list the mapping between HTTP methods and the privilege required for the resource."
64                },
65                "PropertyOverrides": {
66                    "description": "The privilege overrides of properties within a resource.",
67                    "items": {
68                        "$ref": "#/definitions/Target_PrivilegeMap"
69                    },
70                    "longDescription": "This property shall contain the privilege overrides of properties, such as the `Password` property in the `ManagerAccount` resource.",
71                    "type": "array"
72                },
73                "ResourceURIOverrides": {
74                    "description": "The privilege overrides of resource URIs.",
75                    "items": {
76                        "$ref": "#/definitions/Target_PrivilegeMap"
77                    },
78                    "longDescription": "This property shall contain the privilege overrides of resource URIs.  The target lists the resource URI and the new privileges.",
79                    "type": "array"
80                },
81                "SubordinateOverrides": {
82                    "description": "The privilege overrides of the subordinate resource.",
83                    "items": {
84                        "$ref": "#/definitions/Target_PrivilegeMap"
85                    },
86                    "longDescription": "This property shall contain the privilege overrides of the subordinate resource.  The target lists are identified by resource type.",
87                    "type": "array"
88                }
89            },
90            "type": "object"
91        },
92        "OemActions": {
93            "additionalProperties": true,
94            "description": "The available OEM-specific actions for this resource.",
95            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
96            "patternProperties": {
97                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
98                    "description": "This property shall specify a valid odata or Redfish property.",
99                    "type": [
100                        "array",
101                        "boolean",
102                        "integer",
103                        "number",
104                        "null",
105                        "object",
106                        "string"
107                    ]
108                }
109            },
110            "properties": {},
111            "type": "object"
112        },
113        "OperationMap": {
114            "additionalProperties": false,
115            "description": "The specific privileges required to complete a set of HTTP operations.",
116            "longDescription": "This type shall describe the specific privileges required to complete a set of HTTP operations.",
117            "patternProperties": {
118                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
119                    "description": "This property shall specify a valid odata or Redfish property.",
120                    "type": [
121                        "array",
122                        "boolean",
123                        "integer",
124                        "number",
125                        "null",
126                        "object",
127                        "string"
128                    ]
129                }
130            },
131            "properties": {
132                "DELETE": {
133                    "description": "The privilege required to complete an HTTP `DELETE` operation.",
134                    "items": {
135                        "$ref": "#/definitions/OperationPrivilege"
136                    },
137                    "longDescription": "This property shall contain the privilege required to complete an HTTP `DELETE` operation.",
138                    "type": "array"
139                },
140                "GET": {
141                    "description": "The privilege required to complete an HTTP `GET` operation.",
142                    "items": {
143                        "$ref": "#/definitions/OperationPrivilege"
144                    },
145                    "longDescription": "This property shall contain the privilege required to complete an HTTP `GET` operation.",
146                    "type": "array"
147                },
148                "HEAD": {
149                    "description": "The privilege required to complete an HTTP `HEAD` operation.",
150                    "items": {
151                        "$ref": "#/definitions/OperationPrivilege"
152                    },
153                    "longDescription": "This property shall contain the privilege required to complete an HTTP `HEAD` operation.",
154                    "type": "array"
155                },
156                "PATCH": {
157                    "description": "The privilege required to complete an HTTP `PATCH` operation.",
158                    "items": {
159                        "$ref": "#/definitions/OperationPrivilege"
160                    },
161                    "longDescription": "This property shall contain the privilege required to complete an HTTP `PATCH` operation.",
162                    "type": "array"
163                },
164                "POST": {
165                    "description": "The privilege required to complete an HTTP `POST` operation.",
166                    "items": {
167                        "$ref": "#/definitions/OperationPrivilege"
168                    },
169                    "longDescription": "This property shall contain the privilege required to complete an HTTP `POST` operation.",
170                    "type": "array"
171                },
172                "PUT": {
173                    "description": "The privilege required to complete an HTTP `PUT` operation.",
174                    "items": {
175                        "$ref": "#/definitions/OperationPrivilege"
176                    },
177                    "longDescription": "This property shall contain the privilege required to complete an HTTP `PUT` operation.",
178                    "type": "array"
179                }
180            },
181            "type": "object"
182        },
183        "OperationPrivilege": {
184            "additionalProperties": false,
185            "description": "The privileges for a specific HTTP operation.",
186            "longDescription": "This type shall describe the privileges required to complete a specific HTTP operation.",
187            "patternProperties": {
188                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
189                    "description": "This property shall specify a valid odata or Redfish property.",
190                    "type": [
191                        "array",
192                        "boolean",
193                        "integer",
194                        "number",
195                        "null",
196                        "object",
197                        "string"
198                    ]
199                }
200            },
201            "properties": {
202                "Privilege": {
203                    "description": "An array of privileges that are required to complete a specific HTTP operation on a resource.",
204                    "items": {
205                        "type": "string"
206                    },
207                    "longDescription": "This array shall contain an array of privileges that are required to complete a specific HTTP operation on a resource.  This set of strings match zero or more strings in the `PrivilegesUsed` and `OEMPrivilegesUsed` properties.",
208                    "readonly": true,
209                    "type": "array"
210                }
211            },
212            "type": "object"
213        },
214        "PrivilegeRegistry": {
215            "additionalProperties": false,
216            "description": "The `PrivilegeRegistry` schema describes the operation-to-privilege mappings.",
217            "longDescription": "This resource shall contain operation-to-privilege mappings.",
218            "patternProperties": {
219                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
220                    "description": "This property shall specify a valid odata or Redfish property.",
221                    "type": [
222                        "array",
223                        "boolean",
224                        "integer",
225                        "number",
226                        "null",
227                        "object",
228                        "string"
229                    ]
230                }
231            },
232            "properties": {
233                "@odata.type": {
234                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
235                },
236                "Actions": {
237                    "$ref": "#/definitions/Actions",
238                    "description": "The available actions for this resource.",
239                    "longDescription": "This property shall contain the available actions for this resource.",
240                    "versionAdded": "v1_1_0"
241                },
242                "Description": {
243                    "anyOf": [
244                        {
245                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
246                        },
247                        {
248                            "type": "null"
249                        }
250                    ],
251                    "readonly": true
252                },
253                "Id": {
254                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
255                    "readonly": true
256                },
257                "Mappings": {
258                    "description": "The mappings between entities and the relevant privileges that access those entities.",
259                    "items": {
260                        "$ref": "#/definitions/Mapping"
261                    },
262                    "longDescription": "This property shall describe the mappings between entities and the relevant privileges that access those entities.",
263                    "type": "array"
264                },
265                "Name": {
266                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
267                    "readonly": true
268                },
269                "OEMPrivilegesUsed": {
270                    "description": "The set of OEM privileges used in this mapping.",
271                    "items": {
272                        "type": "string"
273                    },
274                    "longDescription": "This property shall contain an array of OEM privileges used in this mapping.",
275                    "readonly": true,
276                    "type": "array"
277                },
278                "Oem": {
279                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
280                    "description": "The OEM extension property.",
281                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
282                },
283                "PrivilegesUsed": {
284                    "description": "The set of Redfish standard privileges used in this mapping.",
285                    "items": {
286                        "$ref": "http://redfish.dmtf.org/schemas/v1/Privileges.json#/definitions/PrivilegeType"
287                    },
288                    "longDescription": "This property shall contain an array of Redfish standard privileges used in this mapping.",
289                    "readonly": true,
290                    "type": "array"
291                }
292            },
293            "required": [
294                "@odata.type",
295                "Id",
296                "Name"
297            ],
298            "type": "object"
299        },
300        "Target_PrivilegeMap": {
301            "additionalProperties": false,
302            "description": "This type describes a mapping between one or more targets and the HTTP operations associated with them.",
303            "longDescription": "This type shall describe a mapping between one or more targets and the HTTP operations associated with them.",
304            "patternProperties": {
305                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
306                    "description": "This property shall specify a valid odata or Redfish property.",
307                    "type": [
308                        "array",
309                        "boolean",
310                        "integer",
311                        "number",
312                        "null",
313                        "object",
314                        "string"
315                    ]
316                }
317            },
318            "properties": {
319                "OperationMap": {
320                    "$ref": "#/definitions/OperationMap",
321                    "description": "The mapping between the HTTP operation and the privilege required to complete the operation.",
322                    "longDescription": "This property shall contain the mapping between the HTTP operation and the privilege required to complete the operation."
323                },
324                "Targets": {
325                    "description": "The set of URIs, resource types, or properties.",
326                    "items": {
327                        "type": [
328                            "string",
329                            "null"
330                        ]
331                    },
332                    "longDescription": "This property shall contain the array of URIs, resource types, or properties.  For example, `/redfish/v1/Systems/1`, `Manager`, or `Password`.  When the `Targets` property is not present, no override is specified.",
333                    "readonly": true,
334                    "type": "array"
335                }
336            },
337            "type": "object"
338        }
339    },
340    "language": "en",
341    "owningEntity": "DMTF",
342    "release": "2017.1",
343    "title": "#PrivilegeRegistry.v1_1_5.PrivilegeRegistry"
344}