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