{
    "$ref": "#/definitions/EventDestination",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2018 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": "This property contains the available OEM specific actions for this resource.",
                    "longDescription": "This property shall contain any additional OEM actions for this resource."
                }
            },
            "type": "object"
        },
        "EventDestination": {
            "additionalProperties": false,
            "description": "An Event Destination desribes the target of an event subscription, including the types of events subscribed and context to provide to the target in the Event payload.",
            "longDescription": "This resource shall be used to represent the target of an event subscription, including the types of events subscribed and context to provide to the target in the Event payload.",
            "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_0_3.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "The Actions property shall contain the available actions for this resource."
                },
                "Context": {
                    "description": "A client-supplied string that is stored with the event destination subscription.",
                    "longDescription": "This property shall contain a client supplied context that will remain with the connection through the connections lifetime.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "Destination": {
                    "description": "The URI of the destination Event Service.",
                    "format": "uri",
                    "longDescription": "This property shall contain a URI to the destination where the events will be sent.",
                    "readonly": true,
                    "type": "string"
                },
                "EventFormatType": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/EventDestination.json#/definitions/EventFormatType"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Indicates the content types of the message that will be sent to the EventDestination.",
                    "longDescription": "The value of this property shall indicate the the content types of the message that this service will send to the EventDestination.  If this property is not present, the EventFormatType shall be assumed to be Event.",
                    "readonly": true
                },
                "EventTypes": {
                    "description": "This property contains the types of events that will be sent to the desination.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Event.json#/definitions/EventType"
                    },
                    "longDescription": "This property shall be an array that contains the types of events that shall be sent to the destination.",
                    "readonly": true,
                    "type": "array"
                },
                "HttpHeaders": {
                    "description": "This is for setting HTTP headers, such as authorization information.  This object will be null on a GET.",
                    "items": {
                        "$ref": "#/definitions/HttpHeaderProperty"
                    },
                    "longDescription": "This property shall contain an object consisting of the names and values of of HTTP header to be included with every event POST to the Event Destination.  This property shall be null on a GET.",
                    "type": "array"
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "MessageIds": {
                    "description": "A list of MessageIds that the service will only send.  If this property is absent or the array is empty, then Events with any MessageId will be sent to the subscriber.",
                    "items": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "longDescription": "The value of this property shall specify an array of MessageIds that are the only allowable values for the MessageId property within an EventRecord sent to the subscriber.  Events with MessageIds not contained in this array shall not be sent to the subscriber.  If this property is absent or the array is empty, the service shall send Events with any MessageId to the subscriber.",
                    "readonly": true,
                    "type": "array"
                },
                "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": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
                },
                "OriginResources": {
                    "description": "A list of resources for which the service will only send related events.  If this property is absent or the array is empty, then Events originating from any resource will be sent to the subscriber.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/idRef"
                    },
                    "longDescription": "The value of this property shall specify an array of Resources, Resource Collections, or Referenceable Members that are the only allowable values for the OriginOfCondition property within an EventRecord sent to the subscriber.  Events originating from Resources, Resource Collections, or Referenceable Members not contained in this array shall not be sent to the subscriber.  If this property is absent or the array is empty, the service shall send Events originating from any Resource, Resource Collection, or Referenceable Member to the subscriber.",
                    "readonly": true,
                    "type": "array"
                },
                "OriginResources@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/count"
                },
                "Protocol": {
                    "$ref": "#/definitions/EventDestinationProtocol",
                    "description": "The protocol type of the event connection.",
                    "longDescription": "This property shall contain the protocol type that the event will use for sending the event to the destination.  A value of Redfish shall be used to indicate that the event type shall adhere to that defined in the Redfish specification.",
                    "readonly": true
                },
                "RegistryPrefixes": {
                    "description": "A list of the Prefixes for the Message Registries that contain the MessageIds that will be sent to this event destination.",
                    "items": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "longDescription": "The value of this property is the array of the Prefixes of the Message Registries that contain the MessageIds in the Events that shall be sent to the EventDestination.  If this property is absent or the array is empty, the service shall send Events with MessageIds from any Message Registry.",
                    "readonly": true,
                    "type": "array"
                },
                "ResourceTypes": {
                    "description": "A list of Resource Type values (Schema names) that correspond to the OriginOfCondition.  The version and full namespace should not be specified.",
                    "items": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "longDescription": "The value of this property shall specify an array of Resource Type values.  When an event is generated, if the OriginOfCondition's Resource Type matches a value in this array, the event shall be sent to the event destination (unless it would be filtered by other property conditions such as RegistryPrefix).  If this property is absent or the array is empty, the service shall send Events from any Resource Type to the subscriber.  The value of this property shall be only the general namespace for the type and not the versioned value.  For example, it shall not be Task.v1_2_0.Task and instead shall just be Task.",
                    "readonly": true,
                    "type": "array"
                },
                "SubordinateResources": {
                    "description": "By setting this to true and specifying OriginResources, this indicates the subscription will be for events from the OriginsResources specified and also all subordinate resources.  Note that resources associated via the Links section are not considered subordinate.",
                    "longDescription": "When set to true and OriginResources is specifed, indicates the subscription shall be for events from the OriginsResources specified and all subordinate resources.  When set to false and OriginResources is specified, indicates subscription shall be for events only from the OriginResources.  If OriginResources is not specified, it has no relevenace.",
                    "readonly": true,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "SubscriptionType": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/SubscriptionType"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Indicates the subscription type for events.",
                    "longDescription": "The value of this property shall indicate the type of subscription for events.  If this property is not present, the SubscriptionType shall be assumed to be RedfishEvent.",
                    "readonly": true
                }
            },
            "required": [
                "Context",
                "@odata.id",
                "@odata.type",
                "Id",
                "Name",
                "SubscriptionType"
            ],
            "requiredOnCreate": [
                "Destination",
                "EventTypes",
                "Protocol"
            ],
            "type": "object"
        },
        "EventDestinationProtocol": {
            "enum": [
                "Redfish"
            ],
            "enumDescriptions": {
                "Redfish": "The destination follows the Redfish specification for event notifications."
            },
            "type": "string"
        },
        "EventFormatType": {
            "enum": [
                "Event",
                "MetricReport"
            ],
            "enumDescriptions": {
                "Event": "The subscription destination will receive JSON Bodies of the Resource Type Event.",
                "MetricReport": "The subscription destination will receive JSON Bodies of the Resource Type MetricReport."
            },
            "type": "string"
        },
        "HttpHeaderProperty": {
            "additionalProperties": false,
            "description": "The value of the HTTP header is the property value.  The header name is the property name.",
            "longDescription": "This type shall a names and value of an HTTP header to be included with every event POST to the Event Destination.",
            "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"
                    ]
                },
                "^[^:\\\\s]+$": {
                    "type": "string"
                }
            },
            "properties": {},
            "type": "object"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM specific actions for this resource.",
            "longDescription": "This type shall contain any additional OEM 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"
        },
        "SubscriptionType": {
            "enum": [
                "RedfishEvent",
                "SSE"
            ],
            "enumDescriptions": {
                "RedfishEvent": "The subscription follows the Redfish specification for event notifications, which is done by a service sending an HTTP POST to the subscriber's destination URI.",
                "SSE": "The subscription follows the HTML5 Server-Sent Event definition for event notifications."
            },
            "type": "string"
        }
    },
    "owningEntity": "DMTF",
    "title": "#EventDestination.v1_4_0.EventDestination"
}