1*dd5c81e9SGunnar Mills{
2*dd5c81e9SGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/AggregationSource.v1_4_3.json",
3*dd5c81e9SGunnar Mills    "$ref": "#/definitions/AggregationSource",
4*dd5c81e9SGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5*dd5c81e9SGunnar Mills    "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6*dd5c81e9SGunnar Mills    "definitions": {
7*dd5c81e9SGunnar Mills        "Actions": {
8*dd5c81e9SGunnar Mills            "additionalProperties": false,
9*dd5c81e9SGunnar Mills            "description": "The available actions for this resource.",
10*dd5c81e9SGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
11*dd5c81e9SGunnar Mills            "patternProperties": {
12*dd5c81e9SGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13*dd5c81e9SGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
14*dd5c81e9SGunnar Mills                    "type": [
15*dd5c81e9SGunnar Mills                        "array",
16*dd5c81e9SGunnar Mills                        "boolean",
17*dd5c81e9SGunnar Mills                        "integer",
18*dd5c81e9SGunnar Mills                        "number",
19*dd5c81e9SGunnar Mills                        "null",
20*dd5c81e9SGunnar Mills                        "object",
21*dd5c81e9SGunnar Mills                        "string"
22*dd5c81e9SGunnar Mills                    ]
23*dd5c81e9SGunnar Mills                }
24*dd5c81e9SGunnar Mills            },
25*dd5c81e9SGunnar Mills            "properties": {
26*dd5c81e9SGunnar Mills                "#AggregationSource.GenerateSSHIdentityKeyPair": {
27*dd5c81e9SGunnar Mills                    "$ref": "#/definitions/GenerateSSHIdentityKeyPair"
28*dd5c81e9SGunnar Mills                },
29*dd5c81e9SGunnar Mills                "#AggregationSource.RemoveSSHIdentityKeyPair": {
30*dd5c81e9SGunnar Mills                    "$ref": "#/definitions/RemoveSSHIdentityKeyPair"
31*dd5c81e9SGunnar Mills                },
32*dd5c81e9SGunnar Mills                "Oem": {
33*dd5c81e9SGunnar Mills                    "$ref": "#/definitions/OemActions",
34*dd5c81e9SGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
35*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
36*dd5c81e9SGunnar Mills                }
37*dd5c81e9SGunnar Mills            },
38*dd5c81e9SGunnar Mills            "type": "object"
39*dd5c81e9SGunnar Mills        },
40*dd5c81e9SGunnar Mills        "AggregationSource": {
41*dd5c81e9SGunnar Mills            "additionalProperties": false,
42*dd5c81e9SGunnar Mills            "description": "The `AggregationSource` schema is used to represent the source of information for a subset of the resources provided by a Redfish service.  It can be thought of as a provider of information.  As such, most such interfaces have requirements to support the gathering of information like address and account used to access the information.",
43*dd5c81e9SGunnar Mills            "longDescription": "This resource shall represent an aggregation source for a Redfish implementation.",
44*dd5c81e9SGunnar Mills            "patternProperties": {
45*dd5c81e9SGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
46*dd5c81e9SGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
47*dd5c81e9SGunnar Mills                    "type": [
48*dd5c81e9SGunnar Mills                        "array",
49*dd5c81e9SGunnar Mills                        "boolean",
50*dd5c81e9SGunnar Mills                        "integer",
51*dd5c81e9SGunnar Mills                        "number",
52*dd5c81e9SGunnar Mills                        "null",
53*dd5c81e9SGunnar Mills                        "object",
54*dd5c81e9SGunnar Mills                        "string"
55*dd5c81e9SGunnar Mills                    ]
56*dd5c81e9SGunnar Mills                }
57*dd5c81e9SGunnar Mills            },
58*dd5c81e9SGunnar Mills            "properties": {
59*dd5c81e9SGunnar Mills                "@odata.context": {
60*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
61*dd5c81e9SGunnar Mills                },
62*dd5c81e9SGunnar Mills                "@odata.etag": {
63*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
64*dd5c81e9SGunnar Mills                },
65*dd5c81e9SGunnar Mills                "@odata.id": {
66*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
67*dd5c81e9SGunnar Mills                },
68*dd5c81e9SGunnar Mills                "@odata.type": {
69*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
70*dd5c81e9SGunnar Mills                },
71*dd5c81e9SGunnar Mills                "Actions": {
72*dd5c81e9SGunnar Mills                    "$ref": "#/definitions/Actions",
73*dd5c81e9SGunnar Mills                    "description": "The available actions for this resource.",
74*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
75*dd5c81e9SGunnar Mills                },
76*dd5c81e9SGunnar Mills                "AggregationType": {
77*dd5c81e9SGunnar Mills                    "$ref": "#/definitions/AggregationType",
78*dd5c81e9SGunnar Mills                    "description": "The type of aggregation used towards the aggregation source.",
79*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the type of aggregation used for the connection method towards the aggregation source.  If this property is not present, the value shall be assumed to be `Full`.",
80*dd5c81e9SGunnar Mills                    "readonly": false,
81*dd5c81e9SGunnar Mills                    "versionAdded": "v1_2_0"
82*dd5c81e9SGunnar Mills                },
83*dd5c81e9SGunnar Mills                "Description": {
84*dd5c81e9SGunnar Mills                    "anyOf": [
85*dd5c81e9SGunnar Mills                        {
86*dd5c81e9SGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
87*dd5c81e9SGunnar Mills                        },
88*dd5c81e9SGunnar Mills                        {
89*dd5c81e9SGunnar Mills                            "type": "null"
90*dd5c81e9SGunnar Mills                        }
91*dd5c81e9SGunnar Mills                    ],
92*dd5c81e9SGunnar Mills                    "readonly": true
93*dd5c81e9SGunnar Mills                },
94*dd5c81e9SGunnar Mills                "HostName": {
95*dd5c81e9SGunnar Mills                    "description": "The URI of the system to be accessed.",
96*dd5c81e9SGunnar Mills                    "format": "uri-reference",
97*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the URI of the system to be aggregated.  This property shall not be required when the aggregation source is configured to only receive notifications from the aggregated system and the `AggregationType` property contains the value `NotificationsOnly`.",
98*dd5c81e9SGunnar Mills                    "readonly": false,
99*dd5c81e9SGunnar Mills                    "type": [
100*dd5c81e9SGunnar Mills                        "string",
101*dd5c81e9SGunnar Mills                        "null"
102*dd5c81e9SGunnar Mills                    ]
103*dd5c81e9SGunnar Mills                },
104*dd5c81e9SGunnar Mills                "Id": {
105*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
106*dd5c81e9SGunnar Mills                    "readonly": true
107*dd5c81e9SGunnar Mills                },
108*dd5c81e9SGunnar Mills                "Links": {
109*dd5c81e9SGunnar Mills                    "$ref": "#/definitions/Links",
110*dd5c81e9SGunnar Mills                    "description": "The links to other resources that are related to this resource.",
111*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
112*dd5c81e9SGunnar Mills                },
113*dd5c81e9SGunnar Mills                "Name": {
114*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
115*dd5c81e9SGunnar Mills                    "readonly": true
116*dd5c81e9SGunnar Mills                },
117*dd5c81e9SGunnar Mills                "Oem": {
118*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
119*dd5c81e9SGunnar Mills                    "description": "The OEM extension property.",
120*dd5c81e9SGunnar 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."
121*dd5c81e9SGunnar Mills                },
122*dd5c81e9SGunnar Mills                "Password": {
123*dd5c81e9SGunnar Mills                    "description": "The password for accessing the aggregation source.  The value is `null` in responses.",
124*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain a password for accessing the aggregation source.  The value shall be `null` in responses.",
125*dd5c81e9SGunnar Mills                    "readonly": false,
126*dd5c81e9SGunnar Mills                    "type": [
127*dd5c81e9SGunnar Mills                        "string",
128*dd5c81e9SGunnar Mills                        "null"
129*dd5c81e9SGunnar Mills                    ],
130*dd5c81e9SGunnar Mills                    "writeOnly": true
131*dd5c81e9SGunnar Mills                },
132*dd5c81e9SGunnar Mills                "SNMP": {
133*dd5c81e9SGunnar Mills                    "$ref": "#/definitions/SNMPSettings",
134*dd5c81e9SGunnar Mills                    "description": "SNMP settings of the aggregation source.",
135*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the SNMP settings of the aggregation source.",
136*dd5c81e9SGunnar Mills                    "versionAdded": "v1_1_0"
137*dd5c81e9SGunnar Mills                },
138*dd5c81e9SGunnar Mills                "SSHSettings": {
139*dd5c81e9SGunnar Mills                    "$ref": "#/definitions/SSHSettingsType",
140*dd5c81e9SGunnar Mills                    "description": "Settings for an aggregation source using SSH as part of the associated connection method.",
141*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the settings for an aggregation source using SSH as part of the associated connection method.",
142*dd5c81e9SGunnar Mills                    "versionAdded": "v1_3_0"
143*dd5c81e9SGunnar Mills                },
144*dd5c81e9SGunnar Mills                "Status": {
145*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
146*dd5c81e9SGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
147*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource.",
148*dd5c81e9SGunnar Mills                    "versionAdded": "v1_3_0"
149*dd5c81e9SGunnar Mills                },
150*dd5c81e9SGunnar Mills                "UserName": {
151*dd5c81e9SGunnar Mills                    "description": "The username for accessing the aggregation source.",
152*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the username for accessing the aggregation source.",
153*dd5c81e9SGunnar Mills                    "readonly": false,
154*dd5c81e9SGunnar Mills                    "type": [
155*dd5c81e9SGunnar Mills                        "string",
156*dd5c81e9SGunnar Mills                        "null"
157*dd5c81e9SGunnar Mills                    ]
158*dd5c81e9SGunnar Mills                }
159*dd5c81e9SGunnar Mills            },
160*dd5c81e9SGunnar Mills            "required": [
161*dd5c81e9SGunnar Mills                "@odata.id",
162*dd5c81e9SGunnar Mills                "@odata.type",
163*dd5c81e9SGunnar Mills                "Id",
164*dd5c81e9SGunnar Mills                "Name"
165*dd5c81e9SGunnar Mills            ],
166*dd5c81e9SGunnar Mills            "type": "object"
167*dd5c81e9SGunnar Mills        },
168*dd5c81e9SGunnar Mills        "AggregationType": {
169*dd5c81e9SGunnar Mills            "enum": [
170*dd5c81e9SGunnar Mills                "NotificationsOnly",
171*dd5c81e9SGunnar Mills                "Full"
172*dd5c81e9SGunnar Mills            ],
173*dd5c81e9SGunnar Mills            "enumDescriptions": {
174*dd5c81e9SGunnar Mills                "Full": "Full aggregation according to connection method.",
175*dd5c81e9SGunnar Mills                "NotificationsOnly": "Only notifications are aggregated."
176*dd5c81e9SGunnar Mills            },
177*dd5c81e9SGunnar Mills            "enumLongDescriptions": {
178*dd5c81e9SGunnar Mills                "Full": "This value shall indicate that the aggregator is performing full aggregation according to the connection method without any limitation such as only receiving notifications.",
179*dd5c81e9SGunnar Mills                "NotificationsOnly": "This value shall indicate that the aggregator is only aggregating notifications or events from the aggregation source according to the connection method used.  This value shall not be used with connection methods that do not include notifications."
180*dd5c81e9SGunnar Mills            },
181*dd5c81e9SGunnar Mills            "type": "string"
182*dd5c81e9SGunnar Mills        },
183*dd5c81e9SGunnar Mills        "GenerateSSHIdentityKeyPair": {
184*dd5c81e9SGunnar Mills            "additionalProperties": false,
185*dd5c81e9SGunnar Mills            "description": "This action generates a new SSH identity key-pair to be used with this aggregation source.  The generated public key is stored in the `Key` resource referenced by the `PublicIdentityKey` property in `SSHSettings`.  Any existing key-pair is deleted and replaced by the new key-pair.",
186*dd5c81e9SGunnar Mills            "longDescription": "This action shall generate a new SSH identity key-pair to be used with this aggregation source.  The service shall store the generated public key in the `Key` resource referenced by the `PublicIdentityKey` property in `SSHSettings`.  If the aggregation source already has an associated SSH identity key-pair, the service shall delete the key-pair and replace it with the new key-pair.",
187*dd5c81e9SGunnar Mills            "parameters": {
188*dd5c81e9SGunnar Mills                "Curve": {
189*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Key.json#/definitions/ECDSACurveType",
190*dd5c81e9SGunnar Mills                    "description": "The curve to use with the SSH key if the KeyType parameter contains `ECDSA`.",
191*dd5c81e9SGunnar Mills                    "longDescription": "This parameter shall contain the curve to use with the SSH key.  This parameter shall be required if the `KeyType` parameter contains `ECDSA` and shall be rejected for other values."
192*dd5c81e9SGunnar Mills                },
193*dd5c81e9SGunnar Mills                "KeyLength": {
194*dd5c81e9SGunnar Mills                    "description": "The length of the SSH key, in bits, if the KeyType parameter contains `RSA`.",
195*dd5c81e9SGunnar Mills                    "longDescription": "This parameter shall contain the length of the SSH key, in bits.  This parameter shall be required if the `KeyType` parameter contains `RSA` and shall be rejected for other values.",
196*dd5c81e9SGunnar Mills                    "type": "integer"
197*dd5c81e9SGunnar Mills                },
198*dd5c81e9SGunnar Mills                "KeyType": {
199*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Key.json#/definitions/SSHKeyType",
200*dd5c81e9SGunnar Mills                    "description": "The type of SSH key.",
201*dd5c81e9SGunnar Mills                    "longDescription": "This parameter shall contain the type of SSH key.",
202*dd5c81e9SGunnar Mills                    "requiredParameter": true
203*dd5c81e9SGunnar Mills                }
204*dd5c81e9SGunnar Mills            },
205*dd5c81e9SGunnar Mills            "patternProperties": {
206*dd5c81e9SGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
207*dd5c81e9SGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
208*dd5c81e9SGunnar Mills                    "type": [
209*dd5c81e9SGunnar Mills                        "array",
210*dd5c81e9SGunnar Mills                        "boolean",
211*dd5c81e9SGunnar Mills                        "integer",
212*dd5c81e9SGunnar Mills                        "number",
213*dd5c81e9SGunnar Mills                        "null",
214*dd5c81e9SGunnar Mills                        "object",
215*dd5c81e9SGunnar Mills                        "string"
216*dd5c81e9SGunnar Mills                    ]
217*dd5c81e9SGunnar Mills                }
218*dd5c81e9SGunnar Mills            },
219*dd5c81e9SGunnar Mills            "properties": {
220*dd5c81e9SGunnar Mills                "target": {
221*dd5c81e9SGunnar Mills                    "description": "Link to invoke action",
222*dd5c81e9SGunnar Mills                    "format": "uri-reference",
223*dd5c81e9SGunnar Mills                    "type": "string"
224*dd5c81e9SGunnar Mills                },
225*dd5c81e9SGunnar Mills                "title": {
226*dd5c81e9SGunnar Mills                    "description": "Friendly action name",
227*dd5c81e9SGunnar Mills                    "type": "string"
228*dd5c81e9SGunnar Mills                }
229*dd5c81e9SGunnar Mills            },
230*dd5c81e9SGunnar Mills            "type": "object",
231*dd5c81e9SGunnar Mills            "versionAdded": "v1_3_0"
232*dd5c81e9SGunnar Mills        },
233*dd5c81e9SGunnar Mills        "Links": {
234*dd5c81e9SGunnar Mills            "additionalProperties": false,
235*dd5c81e9SGunnar Mills            "description": "The links to other resources that are related to this resource.",
236*dd5c81e9SGunnar 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.",
237*dd5c81e9SGunnar Mills            "patternProperties": {
238*dd5c81e9SGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
239*dd5c81e9SGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
240*dd5c81e9SGunnar Mills                    "type": [
241*dd5c81e9SGunnar Mills                        "array",
242*dd5c81e9SGunnar Mills                        "boolean",
243*dd5c81e9SGunnar Mills                        "integer",
244*dd5c81e9SGunnar Mills                        "number",
245*dd5c81e9SGunnar Mills                        "null",
246*dd5c81e9SGunnar Mills                        "object",
247*dd5c81e9SGunnar Mills                        "string"
248*dd5c81e9SGunnar Mills                    ]
249*dd5c81e9SGunnar Mills                }
250*dd5c81e9SGunnar Mills            },
251*dd5c81e9SGunnar Mills            "properties": {
252*dd5c81e9SGunnar Mills                "ConnectionMethod": {
253*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/ConnectionMethod.json#/definitions/ConnectionMethod",
254*dd5c81e9SGunnar Mills                    "description": "A link to the connection method used to contact this aggregation source.",
255*dd5c81e9SGunnar Mills                    "longDescription": "This property shall a link to a resource of type `ConnectionMethod` that represents the method used to connect to the aggregation source.",
256*dd5c81e9SGunnar Mills                    "readonly": true
257*dd5c81e9SGunnar Mills                },
258*dd5c81e9SGunnar Mills                "Oem": {
259*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
260*dd5c81e9SGunnar Mills                    "description": "The OEM extension property.",
261*dd5c81e9SGunnar 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."
262*dd5c81e9SGunnar Mills                },
263*dd5c81e9SGunnar Mills                "ResourcesAccessed": {
264*dd5c81e9SGunnar Mills                    "description": "An array links to the resources added to the service through this aggregation source.  It is recommended that this be the minimal number of properties needed to find the resources that would be lost when the aggregation source is deleted.",
265*dd5c81e9SGunnar Mills                    "items": {
266*dd5c81e9SGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource"
267*dd5c81e9SGunnar Mills                    },
268*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain an array of links to the resources added to the service through the aggregation source.  It is recommended that this be the minimal number of properties needed to find the resources that would be lost when the aggregation source is deleted.  For example, this could be the pointers to the members of the root-level collections or the manager of a BMC.",
269*dd5c81e9SGunnar Mills                    "readonly": true,
270*dd5c81e9SGunnar Mills                    "type": "array"
271*dd5c81e9SGunnar Mills                },
272*dd5c81e9SGunnar Mills                "ResourcesAccessed@odata.count": {
273*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
274*dd5c81e9SGunnar Mills                }
275*dd5c81e9SGunnar Mills            },
276*dd5c81e9SGunnar Mills            "type": "object"
277*dd5c81e9SGunnar Mills        },
278*dd5c81e9SGunnar Mills        "OemActions": {
279*dd5c81e9SGunnar Mills            "additionalProperties": true,
280*dd5c81e9SGunnar Mills            "description": "The available OEM-specific actions for this resource.",
281*dd5c81e9SGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
282*dd5c81e9SGunnar Mills            "patternProperties": {
283*dd5c81e9SGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
284*dd5c81e9SGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
285*dd5c81e9SGunnar Mills                    "type": [
286*dd5c81e9SGunnar Mills                        "array",
287*dd5c81e9SGunnar Mills                        "boolean",
288*dd5c81e9SGunnar Mills                        "integer",
289*dd5c81e9SGunnar Mills                        "number",
290*dd5c81e9SGunnar Mills                        "null",
291*dd5c81e9SGunnar Mills                        "object",
292*dd5c81e9SGunnar Mills                        "string"
293*dd5c81e9SGunnar Mills                    ]
294*dd5c81e9SGunnar Mills                }
295*dd5c81e9SGunnar Mills            },
296*dd5c81e9SGunnar Mills            "properties": {},
297*dd5c81e9SGunnar Mills            "type": "object"
298*dd5c81e9SGunnar Mills        },
299*dd5c81e9SGunnar Mills        "RemoveSSHIdentityKeyPair": {
300*dd5c81e9SGunnar Mills            "additionalProperties": false,
301*dd5c81e9SGunnar Mills            "description": "This action removes the SSH identity key-pair used with this aggregation source.",
302*dd5c81e9SGunnar Mills            "longDescription": "This action shall remove the private SSH identity key-pair used with this aggregation source.",
303*dd5c81e9SGunnar Mills            "parameters": {},
304*dd5c81e9SGunnar Mills            "patternProperties": {
305*dd5c81e9SGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
306*dd5c81e9SGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
307*dd5c81e9SGunnar Mills                    "type": [
308*dd5c81e9SGunnar Mills                        "array",
309*dd5c81e9SGunnar Mills                        "boolean",
310*dd5c81e9SGunnar Mills                        "integer",
311*dd5c81e9SGunnar Mills                        "number",
312*dd5c81e9SGunnar Mills                        "null",
313*dd5c81e9SGunnar Mills                        "object",
314*dd5c81e9SGunnar Mills                        "string"
315*dd5c81e9SGunnar Mills                    ]
316*dd5c81e9SGunnar Mills                }
317*dd5c81e9SGunnar Mills            },
318*dd5c81e9SGunnar Mills            "properties": {
319*dd5c81e9SGunnar Mills                "target": {
320*dd5c81e9SGunnar Mills                    "description": "Link to invoke action",
321*dd5c81e9SGunnar Mills                    "format": "uri-reference",
322*dd5c81e9SGunnar Mills                    "type": "string"
323*dd5c81e9SGunnar Mills                },
324*dd5c81e9SGunnar Mills                "title": {
325*dd5c81e9SGunnar Mills                    "description": "Friendly action name",
326*dd5c81e9SGunnar Mills                    "type": "string"
327*dd5c81e9SGunnar Mills                }
328*dd5c81e9SGunnar Mills            },
329*dd5c81e9SGunnar Mills            "type": "object",
330*dd5c81e9SGunnar Mills            "versionAdded": "v1_3_0"
331*dd5c81e9SGunnar Mills        },
332*dd5c81e9SGunnar Mills        "SNMPAuthenticationProtocols": {
333*dd5c81e9SGunnar Mills            "enum": [
334*dd5c81e9SGunnar Mills                "None",
335*dd5c81e9SGunnar Mills                "CommunityString",
336*dd5c81e9SGunnar Mills                "HMAC_MD5",
337*dd5c81e9SGunnar Mills                "HMAC_SHA96",
338*dd5c81e9SGunnar Mills                "HMAC128_SHA224",
339*dd5c81e9SGunnar Mills                "HMAC192_SHA256",
340*dd5c81e9SGunnar Mills                "HMAC256_SHA384",
341*dd5c81e9SGunnar Mills                "HMAC384_SHA512"
342*dd5c81e9SGunnar Mills            ],
343*dd5c81e9SGunnar Mills            "enumDescriptions": {
344*dd5c81e9SGunnar Mills                "CommunityString": "Trap community string authentication.",
345*dd5c81e9SGunnar Mills                "HMAC128_SHA224": "HMAC-128-SHA-224 authentication.",
346*dd5c81e9SGunnar Mills                "HMAC192_SHA256": "HMAC-192-SHA-256 authentication.",
347*dd5c81e9SGunnar Mills                "HMAC256_SHA384": "HMAC-256-SHA-384 authentication.",
348*dd5c81e9SGunnar Mills                "HMAC384_SHA512": "HMAC-384-SHA-512 authentication.",
349*dd5c81e9SGunnar Mills                "HMAC_MD5": "HMAC-MD5-96 authentication.",
350*dd5c81e9SGunnar Mills                "HMAC_SHA96": "HMAC-SHA-96 authentication.",
351*dd5c81e9SGunnar Mills                "None": "No authentication."
352*dd5c81e9SGunnar Mills            },
353*dd5c81e9SGunnar Mills            "enumLongDescriptions": {
354*dd5c81e9SGunnar Mills                "CommunityString": "This value shall indicate authentication using SNMP community strings and the value of `TrapCommunity`.",
355*dd5c81e9SGunnar Mills                "HMAC128_SHA224": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC128SHA224AuthProtocol.",
356*dd5c81e9SGunnar Mills                "HMAC192_SHA256": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC192SHA256AuthProtocol.",
357*dd5c81e9SGunnar Mills                "HMAC256_SHA384": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC256SHA384AuthProtocol.",
358*dd5c81e9SGunnar Mills                "HMAC384_SHA512": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC384SHA512AuthProtocol.",
359*dd5c81e9SGunnar Mills                "HMAC_MD5": "This value shall indicate authentication conforms to the RFC3414-defined HMAC-MD5-96 authentication protocol.",
360*dd5c81e9SGunnar Mills                "HMAC_SHA96": "This value shall indicate authentication conforms to the RFC3414-defined HMAC-SHA-96 authentication protocol.",
361*dd5c81e9SGunnar Mills                "None": "This value shall indicate authentication is not required."
362*dd5c81e9SGunnar Mills            },
363*dd5c81e9SGunnar Mills            "type": "string"
364*dd5c81e9SGunnar Mills        },
365*dd5c81e9SGunnar Mills        "SNMPEncryptionProtocols": {
366*dd5c81e9SGunnar Mills            "enum": [
367*dd5c81e9SGunnar Mills                "None",
368*dd5c81e9SGunnar Mills                "CBC_DES",
369*dd5c81e9SGunnar Mills                "CFB128_AES128",
370*dd5c81e9SGunnar Mills                "CFB128_AES192",
371*dd5c81e9SGunnar Mills                "CFB128_AES256"
372*dd5c81e9SGunnar Mills            ],
373*dd5c81e9SGunnar Mills            "enumDescriptions": {
374*dd5c81e9SGunnar Mills                "CBC_DES": "CBC-DES encryption.",
375*dd5c81e9SGunnar Mills                "CFB128_AES128": "CFB128-AES-128 encryption.",
376*dd5c81e9SGunnar Mills                "CFB128_AES192": "CFB128-AES-192 encryption.",
377*dd5c81e9SGunnar Mills                "CFB128_AES256": "CFB128-AES-256 encryption.",
378*dd5c81e9SGunnar Mills                "None": "No encryption."
379*dd5c81e9SGunnar Mills            },
380*dd5c81e9SGunnar Mills            "enumLongDescriptions": {
381*dd5c81e9SGunnar Mills                "CBC_DES": "This value shall indicate encryption conforms to the RFC3414-defined CBC-DES encryption protocol.",
382*dd5c81e9SGunnar Mills                "CFB128_AES128": "This value shall indicate encryption conforms to the RFC3826-defined CFB128-AES-128 encryption protocol.",
383*dd5c81e9SGunnar Mills                "CFB128_AES192": "This value shall indicate encryption conforms to the CFB128-AES-192 encryption protocol, extended from RFC3826.",
384*dd5c81e9SGunnar Mills                "CFB128_AES256": "This value shall indicate encryption conforms to the CFB128-AES-256 encryption protocol, extended from RFC3826.",
385*dd5c81e9SGunnar Mills                "None": "This value shall indicate there is no encryption."
386*dd5c81e9SGunnar Mills            },
387*dd5c81e9SGunnar Mills            "enumVersionAdded": {
388*dd5c81e9SGunnar Mills                "CFB128_AES192": "v1_4_0",
389*dd5c81e9SGunnar Mills                "CFB128_AES256": "v1_4_0"
390*dd5c81e9SGunnar Mills            },
391*dd5c81e9SGunnar Mills            "type": "string"
392*dd5c81e9SGunnar Mills        },
393*dd5c81e9SGunnar Mills        "SNMPSettings": {
394*dd5c81e9SGunnar Mills            "additionalProperties": false,
395*dd5c81e9SGunnar Mills            "description": "Settings for an SNMP aggregation source.",
396*dd5c81e9SGunnar Mills            "longDescription": "This type shall contain the settings for an SNMP aggregation source.",
397*dd5c81e9SGunnar Mills            "patternProperties": {
398*dd5c81e9SGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
399*dd5c81e9SGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
400*dd5c81e9SGunnar Mills                    "type": [
401*dd5c81e9SGunnar Mills                        "array",
402*dd5c81e9SGunnar Mills                        "boolean",
403*dd5c81e9SGunnar Mills                        "integer",
404*dd5c81e9SGunnar Mills                        "number",
405*dd5c81e9SGunnar Mills                        "null",
406*dd5c81e9SGunnar Mills                        "object",
407*dd5c81e9SGunnar Mills                        "string"
408*dd5c81e9SGunnar Mills                    ]
409*dd5c81e9SGunnar Mills                }
410*dd5c81e9SGunnar Mills            },
411*dd5c81e9SGunnar Mills            "properties": {
412*dd5c81e9SGunnar Mills                "AuthenticationKey": {
413*dd5c81e9SGunnar Mills                    "description": "The secret authentication key for SNMPv3.",
414*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the key for SNMPv3 authentication.  The value shall be `null` in responses.  This property accepts a passphrase or a hex-encoded key.  If the string starts with `Passphrase:`, the remainder of the string shall be the passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  If the string starts with `Hex:`, then the remainder of the string shall be the key encoded in hexadecimal notation.  If the string starts with neither, the full string shall be a passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.",
415*dd5c81e9SGunnar Mills                    "pattern": "(^[ -~]+$)|(^Passphrase:[ -~]+$)|(^Hex:[0-9A-Fa-f]{24,96}$)|(^\\*+$)",
416*dd5c81e9SGunnar Mills                    "readonly": false,
417*dd5c81e9SGunnar Mills                    "type": [
418*dd5c81e9SGunnar Mills                        "string",
419*dd5c81e9SGunnar Mills                        "null"
420*dd5c81e9SGunnar Mills                    ],
421*dd5c81e9SGunnar Mills                    "versionAdded": "v1_1_0",
422*dd5c81e9SGunnar Mills                    "writeOnly": true
423*dd5c81e9SGunnar Mills                },
424*dd5c81e9SGunnar Mills                "AuthenticationKeySet": {
425*dd5c81e9SGunnar Mills                    "description": "Indicates if the `AuthenticationKey` property is set.",
426*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain `true` if a valid value was provided for the `AuthenticationKey` property.  Otherwise, the property shall contain `false`.",
427*dd5c81e9SGunnar Mills                    "readonly": true,
428*dd5c81e9SGunnar Mills                    "type": "boolean",
429*dd5c81e9SGunnar Mills                    "versionAdded": "v1_1_0"
430*dd5c81e9SGunnar Mills                },
431*dd5c81e9SGunnar Mills                "AuthenticationProtocol": {
432*dd5c81e9SGunnar Mills                    "anyOf": [
433*dd5c81e9SGunnar Mills                        {
434*dd5c81e9SGunnar Mills                            "$ref": "#/definitions/SNMPAuthenticationProtocols"
435*dd5c81e9SGunnar Mills                        },
436*dd5c81e9SGunnar Mills                        {
437*dd5c81e9SGunnar Mills                            "type": "null"
438*dd5c81e9SGunnar Mills                        }
439*dd5c81e9SGunnar Mills                    ],
440*dd5c81e9SGunnar Mills                    "description": "The authentication protocol for SNMPv3.",
441*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the SNMPv3 authentication protocol.",
442*dd5c81e9SGunnar Mills                    "readonly": false,
443*dd5c81e9SGunnar Mills                    "versionAdded": "v1_1_0"
444*dd5c81e9SGunnar Mills                },
445*dd5c81e9SGunnar Mills                "EncryptionKey": {
446*dd5c81e9SGunnar Mills                    "description": "The secret authentication key for SNMPv3.",
447*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the key for SNMPv3 encryption.  The value shall be `null` in responses.  This property accepts a passphrase or a hex-encoded key.  If the string starts with `Passphrase:`, the remainder of the string shall be the passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  If the string starts with `Hex:`, then the remainder of the string shall be the key encoded in hexadecimal notation.  If the string starts with neither, the full string shall be a passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.",
448*dd5c81e9SGunnar Mills                    "pattern": "(^[ -~]+$)|(^Passphrase:[ -~]+$)|(^Hex:[0-9A-Fa-f]{16,64}$)|(^\\*+$)",
449*dd5c81e9SGunnar Mills                    "readonly": false,
450*dd5c81e9SGunnar Mills                    "type": [
451*dd5c81e9SGunnar Mills                        "string",
452*dd5c81e9SGunnar Mills                        "null"
453*dd5c81e9SGunnar Mills                    ],
454*dd5c81e9SGunnar Mills                    "versionAdded": "v1_1_0",
455*dd5c81e9SGunnar Mills                    "writeOnly": true
456*dd5c81e9SGunnar Mills                },
457*dd5c81e9SGunnar Mills                "EncryptionKeySet": {
458*dd5c81e9SGunnar Mills                    "description": "Indicates if the `EncryptionKey` property is set.",
459*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain `true` if a valid value was provided for the `EncryptionKey` property.  Otherwise, the property shall contain `false`.",
460*dd5c81e9SGunnar Mills                    "readonly": true,
461*dd5c81e9SGunnar Mills                    "type": "boolean",
462*dd5c81e9SGunnar Mills                    "versionAdded": "v1_1_0"
463*dd5c81e9SGunnar Mills                },
464*dd5c81e9SGunnar Mills                "EncryptionProtocol": {
465*dd5c81e9SGunnar Mills                    "anyOf": [
466*dd5c81e9SGunnar Mills                        {
467*dd5c81e9SGunnar Mills                            "$ref": "#/definitions/SNMPEncryptionProtocols"
468*dd5c81e9SGunnar Mills                        },
469*dd5c81e9SGunnar Mills                        {
470*dd5c81e9SGunnar Mills                            "type": "null"
471*dd5c81e9SGunnar Mills                        }
472*dd5c81e9SGunnar Mills                    ],
473*dd5c81e9SGunnar Mills                    "description": "The encryption protocol for SNMPv3.",
474*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the SNMPv3 encryption protocol.",
475*dd5c81e9SGunnar Mills                    "readonly": false,
476*dd5c81e9SGunnar Mills                    "versionAdded": "v1_1_0"
477*dd5c81e9SGunnar Mills                },
478*dd5c81e9SGunnar Mills                "TrapCommunity": {
479*dd5c81e9SGunnar Mills                    "description": "The SNMP trap community string.",
480*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the SNMP trap community string.  The value shall be `null` in responses.  Services may provide a common trap community if not specified by the client when creating the aggregation source.",
481*dd5c81e9SGunnar Mills                    "readonly": false,
482*dd5c81e9SGunnar Mills                    "type": [
483*dd5c81e9SGunnar Mills                        "string",
484*dd5c81e9SGunnar Mills                        "null"
485*dd5c81e9SGunnar Mills                    ],
486*dd5c81e9SGunnar Mills                    "versionAdded": "v1_2_0",
487*dd5c81e9SGunnar Mills                    "writeOnly": true
488*dd5c81e9SGunnar Mills                }
489*dd5c81e9SGunnar Mills            },
490*dd5c81e9SGunnar Mills            "type": "object"
491*dd5c81e9SGunnar Mills        },
492*dd5c81e9SGunnar Mills        "SSHSettingsType": {
493*dd5c81e9SGunnar Mills            "additionalProperties": false,
494*dd5c81e9SGunnar Mills            "description": "Settings for an aggregation source using SSH as part of the associated connection method.",
495*dd5c81e9SGunnar Mills            "longDescription": "This type shall contain the settings for an aggregation source using SSH as part of the associated connection method.",
496*dd5c81e9SGunnar Mills            "patternProperties": {
497*dd5c81e9SGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
498*dd5c81e9SGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
499*dd5c81e9SGunnar Mills                    "type": [
500*dd5c81e9SGunnar Mills                        "array",
501*dd5c81e9SGunnar Mills                        "boolean",
502*dd5c81e9SGunnar Mills                        "integer",
503*dd5c81e9SGunnar Mills                        "number",
504*dd5c81e9SGunnar Mills                        "null",
505*dd5c81e9SGunnar Mills                        "object",
506*dd5c81e9SGunnar Mills                        "string"
507*dd5c81e9SGunnar Mills                    ]
508*dd5c81e9SGunnar Mills                }
509*dd5c81e9SGunnar Mills            },
510*dd5c81e9SGunnar Mills            "properties": {
511*dd5c81e9SGunnar Mills                "PresentedPublicHostKey": {
512*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Key.json#/definitions/Key",
513*dd5c81e9SGunnar Mills                    "description": "A link to the last public host key presented by the remote service corresponding to the aggregation source.  A client that trusts this public host key can add the public host key to the TrustedPublicHostKeys collection to allow SSH communication with the aggregation source.",
514*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `Key` that represents the last public host key presented by the remote service corresponding to the aggregation source.  This property shall not be present if a public host key has not yet been presented by the remote service.",
515*dd5c81e9SGunnar Mills                    "readonly": true,
516*dd5c81e9SGunnar Mills                    "versionAdded": "v1_3_0"
517*dd5c81e9SGunnar Mills                },
518*dd5c81e9SGunnar Mills                "PresentedPublicHostKeyTimestamp": {
519*dd5c81e9SGunnar Mills                    "description": "The date and time when the key referenced by the `PresentedPublicHostKey` property was last updated.",
520*dd5c81e9SGunnar Mills                    "format": "date-time",
521*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the date and time when the key referenced by the `PresentedPublicHostKey` property was last updated.",
522*dd5c81e9SGunnar Mills                    "readonly": true,
523*dd5c81e9SGunnar Mills                    "type": [
524*dd5c81e9SGunnar Mills                        "string",
525*dd5c81e9SGunnar Mills                        "null"
526*dd5c81e9SGunnar Mills                    ],
527*dd5c81e9SGunnar Mills                    "versionAdded": "v1_3_0"
528*dd5c81e9SGunnar Mills                },
529*dd5c81e9SGunnar Mills                "PublicIdentityKey": {
530*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Key.json#/definitions/Key",
531*dd5c81e9SGunnar Mills                    "description": "A link to the public key that is used with the aggregation source when the authentication method is configured to use a public key.  The GenerateSSHIdentityKeyPair and RemoveSSHIdentityKeyPair are used to update the key for this aggregation source.",
532*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `Key` that represents the public key that is used with the aggregation source when `UserAuthenticationMethod` contains `PublicKey`.  This property shall not be present if a key-pair is not available.  The `State` property within `Status` shall contain `Disabled` if a key-pair is not available and `UserAuthenticationMethod` contains `PublicKey`.",
533*dd5c81e9SGunnar Mills                    "readonly": true,
534*dd5c81e9SGunnar Mills                    "versionAdded": "v1_3_0"
535*dd5c81e9SGunnar Mills                },
536*dd5c81e9SGunnar Mills                "TrustedPublicHostKeys": {
537*dd5c81e9SGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/KeyCollection.json#/definitions/KeyCollection",
538*dd5c81e9SGunnar Mills                    "description": "A link to the trusted public host keys of the remote service corresponding to the aggregation source.  These trusted public host keys are used for authentication of the remote service with SSH.  An SSH public host key of the remote service can be added to this collection to allow for public key-based SSH authentication.",
539*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `KeyCollection` that represents the trusted public host keys of the remote service corresponding to the aggregation source.  If the associated connection method specifies SSH tunneling, the service shall compare the public host key presented by the remote service with members of this collection to determine if the remote service can be trusted.  If the remote service cannot be trusted, the `State` property within `Status` shall contain `Disabled` and the service shall not connect to the remote service.",
540*dd5c81e9SGunnar Mills                    "readonly": true,
541*dd5c81e9SGunnar Mills                    "versionAdded": "v1_3_0"
542*dd5c81e9SGunnar Mills                },
543*dd5c81e9SGunnar Mills                "UserAuthenticationMethod": {
544*dd5c81e9SGunnar Mills                    "anyOf": [
545*dd5c81e9SGunnar Mills                        {
546*dd5c81e9SGunnar Mills                            "$ref": "#/definitions/UserAuthenticationMethod"
547*dd5c81e9SGunnar Mills                        },
548*dd5c81e9SGunnar Mills                        {
549*dd5c81e9SGunnar Mills                            "type": "null"
550*dd5c81e9SGunnar Mills                        }
551*dd5c81e9SGunnar Mills                    ],
552*dd5c81e9SGunnar Mills                    "description": "The client user authentication method.",
553*dd5c81e9SGunnar Mills                    "longDescription": "This property shall contain the client user authentication method.",
554*dd5c81e9SGunnar Mills                    "readonly": false,
555*dd5c81e9SGunnar Mills                    "versionAdded": "v1_3_0"
556*dd5c81e9SGunnar Mills                }
557*dd5c81e9SGunnar Mills            },
558*dd5c81e9SGunnar Mills            "type": "object"
559*dd5c81e9SGunnar Mills        },
560*dd5c81e9SGunnar Mills        "UserAuthenticationMethod": {
561*dd5c81e9SGunnar Mills            "enum": [
562*dd5c81e9SGunnar Mills                "PublicKey",
563*dd5c81e9SGunnar Mills                "Password"
564*dd5c81e9SGunnar Mills            ],
565*dd5c81e9SGunnar Mills            "enumDescriptions": {
566*dd5c81e9SGunnar Mills                "Password": "SSH user authentication with a password.",
567*dd5c81e9SGunnar Mills                "PublicKey": "SSH user authentication with a public key."
568*dd5c81e9SGunnar Mills            },
569*dd5c81e9SGunnar Mills            "enumLongDescriptions": {
570*dd5c81e9SGunnar Mills                "Password": "This value shall indicate SSH user authentication with a password specified by the `Password` property.",
571*dd5c81e9SGunnar Mills                "PublicKey": "This value shall indicate SSH user authentication with a public key specified by the `PublicIdentityKey` property in `SSHSettings`."
572*dd5c81e9SGunnar Mills            },
573*dd5c81e9SGunnar Mills            "type": "string"
574*dd5c81e9SGunnar Mills        }
575*dd5c81e9SGunnar Mills    },
576*dd5c81e9SGunnar Mills    "language": "en",
577*dd5c81e9SGunnar Mills    "owningEntity": "DMTF",
578*dd5c81e9SGunnar Mills    "release": "2023.3",
579*dd5c81e9SGunnar Mills    "title": "#AggregationSource.v1_4_3.AggregationSource"
580*dd5c81e9SGunnar Mills}