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