{
    "$id": "http://redfish.dmtf.org/schemas/v1/AggregationSource.v1_2_2.json",
    "$ref": "#/definitions/AggregationSource",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2023 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "Actions": {
            "additionalProperties": false,
            "description": "The available actions for this resource.",
            "longDescription": "This type shall contain the available actions for this resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "Oem": {
                    "$ref": "#/definitions/OemActions",
                    "description": "The available OEM-specific actions for this resource.",
                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
                }
            },
            "type": "object"
        },
        "AggregationSource": {
            "additionalProperties": false,
            "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.",
            "longDescription": "This resource shall represent an aggregation source for a Redfish implementation.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "This property shall contain the available actions for this resource."
                },
                "AggregationType": {
                    "$ref": "#/definitions/AggregationType",
                    "description": "The type of aggregation used towards the aggregation source.",
                    "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`.",
                    "readonly": false,
                    "versionAdded": "v1_2_0"
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "HostName": {
                    "description": "The URI of the system to be accessed.",
                    "format": "uri-reference",
                    "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`.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Links": {
                    "$ref": "#/definitions/Links",
                    "description": "The links to other resources that are related to this resource.",
                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "Password": {
                    "description": "The password for accessing the aggregation source.  The value is `null` in responses.",
                    "longDescription": "This property shall contain a password for accessing the aggregation source.  The value shall be `null` in responses.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "writeOnly": true
                },
                "SNMP": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/SNMPSettings"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "SNMP settings of the aggregation source.",
                    "longDescription": "This property shall contain the SNMP settings of the aggregation source.",
                    "versionAdded": "v1_1_0"
                },
                "UserName": {
                    "description": "The user name for accessing the aggregation source.",
                    "longDescription": "This property shall contain the user name for accessing the aggregation source.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        },
        "AggregationType": {
            "enum": [
                "NotificationsOnly",
                "Full"
            ],
            "enumDescriptions": {
                "Full": "Full aggregation according to connection method.",
                "NotificationsOnly": "Only notifications are aggregated."
            },
            "enumLongDescriptions": {
                "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.",
                "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."
            },
            "type": "string"
        },
        "Links": {
            "additionalProperties": false,
            "description": "The links to other resources that are related to this resource.",
            "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.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "ConnectionMethod": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/ConnectionMethod.json#/definitions/ConnectionMethod"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "An array of links to the connection methods used to contact this aggregation source.",
                    "longDescription": "This property shall contain an array of links to resources of type ConnectionMethod that are used to connect to the aggregation source.",
                    "readonly": true
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
                },
                "ResourcesAccessed": {
                    "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.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource"
                    },
                    "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.",
                    "readonly": true,
                    "type": "array"
                },
                "ResourcesAccessed@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                }
            },
            "type": "object"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM-specific actions for this resource.",
            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {},
            "type": "object"
        },
        "SNMPAuthenticationProtocols": {
            "enum": [
                "None",
                "CommunityString",
                "HMAC_MD5",
                "HMAC_SHA96",
                "HMAC128_SHA224",
                "HMAC192_SHA256",
                "HMAC256_SHA384",
                "HMAC384_SHA512"
            ],
            "enumDescriptions": {
                "CommunityString": "Trap community string authentication.",
                "HMAC128_SHA224": "HMAC-128-SHA-224 authentication.",
                "HMAC192_SHA256": "HMAC-192-SHA-256 authentication.",
                "HMAC256_SHA384": "HMAC-256-SHA-384 authentication.",
                "HMAC384_SHA512": "HMAC-384-SHA-512 authentication.",
                "HMAC_MD5": "HMAC-MD5-96 authentication.",
                "HMAC_SHA96": "HMAC-SHA-96 authentication.",
                "None": "No authentication."
            },
            "enumLongDescriptions": {
                "CommunityString": "This value shall indicate authentication using SNMP community strings and the value of TrapCommunity.",
                "HMAC128_SHA224": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC128SHA224AuthProtocol.",
                "HMAC192_SHA256": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC192SHA256AuthProtocol.",
                "HMAC256_SHA384": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC256SHA384AuthProtocol.",
                "HMAC384_SHA512": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC384SHA512AuthProtocol.",
                "HMAC_MD5": "This value shall indicate authentication conforms to the RFC3414-defined HMAC-MD5-96 authentication protocol.",
                "HMAC_SHA96": "This value shall indicate authentication conforms to the RFC3414-defined HMAC-SHA-96 authentication protocol.",
                "None": "This value shall indicate authentication is not required."
            },
            "type": "string"
        },
        "SNMPEncryptionProtocols": {
            "enum": [
                "None",
                "CBC_DES",
                "CFB128_AES128"
            ],
            "enumDescriptions": {
                "CBC_DES": "CBC-DES encryption.",
                "CFB128_AES128": "CFB128-AES-128 encryption.",
                "None": "No encryption."
            },
            "enumLongDescriptions": {
                "CBC_DES": "This value shall indicate encryption conforms to the RFC3414-defined CBC-DES encryption protocol.",
                "CFB128_AES128": "This value shall indicate encryption conforms to the RFC3826-defined CFB128-AES-128 encryption protocol.",
                "None": "This value shall indicate there is no encryption."
            },
            "type": "string"
        },
        "SNMPSettings": {
            "additionalProperties": false,
            "description": "Settings for an SNMP aggregation source.",
            "longDescription": "This type shall contain the settings for an SNMP aggregation source.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "AuthenticationKey": {
                    "description": "The secret authentication key for SNMPv3.",
                    "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.",
                    "pattern": "(^[ !#-~]+$)|(^Passphrase:[ ^[ !#-~]+$)|(^Hex:[0-9A-Fa-f]{24,96})|(^\\*+$)",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_1_0",
                    "writeOnly": true
                },
                "AuthenticationKeySet": {
                    "description": "Indicates if the AuthenticationKey property is set.",
                    "longDescription": "This property shall contain `true` if a valid value was provided for the AuthenticationKey property.  Otherwise, the property shall contain `false`.",
                    "readonly": true,
                    "type": "boolean",
                    "versionAdded": "v1_1_0"
                },
                "AuthenticationProtocol": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/SNMPAuthenticationProtocols"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The authentication protocol for SNMPv3.",
                    "longDescription": "This property shall contain the SNMPv3 authentication protocol.",
                    "readonly": false,
                    "versionAdded": "v1_1_0"
                },
                "EncryptionKey": {
                    "description": "The secret authentication key for SNMPv3.",
                    "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.",
                    "pattern": "(^[A-Za-z0-9]+$)|(^\\*+$)",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_1_0",
                    "writeOnly": true
                },
                "EncryptionKeySet": {
                    "description": "Indicates if the EncryptionKey property is set.",
                    "longDescription": "This property shall contain `true` if a valid value was provided for the EncryptionKey property.  Otherwise, the property shall contain `false`.",
                    "readonly": true,
                    "type": "boolean",
                    "versionAdded": "v1_1_0"
                },
                "EncryptionProtocol": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/SNMPEncryptionProtocols"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The encryption protocol for SNMPv3.",
                    "longDescription": "This property shall contain the SNMPv3 encryption protocol.",
                    "readonly": false,
                    "versionAdded": "v1_1_0"
                },
                "TrapCommunity": {
                    "description": "The SNMP trap community string.",
                    "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.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_2_0",
                    "writeOnly": true
                }
            },
            "type": "object"
        }
    },
    "owningEntity": "DMTF",
    "release": "2021.3",
    "title": "#AggregationSource.v1_2_2.AggregationSource"
}