{
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_2_0.json",
    "title": "#EventDestination.v1_0_4.EventDestination",
    "$ref": "#/definitions/EventDestination",
    "definitions": {
        "EventDestinationProtocol": {
            "type": "string",
            "enum": [
                "Redfish"
            ]
        },
        "HttpHeaderProperty": {
            "type": "object",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                },
                "^[^:\\s]+$": {
                    "type": "string"
                }
            },
            "additionalProperties": false,
            "properties": {},
            "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."
        },
        "EventDestination": {
            "type": "object",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "additionalProperties": false,
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
                },
                "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*."
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Description": {
                    "anyOf": [
                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
                        {"type": "null"}
                    ],
                    "readonly": true
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Destination": {
                    "type": "string",
                    "format": "uri",
                    "readonly": true,
                    "description": "The URI of the destination Event Service.",
                    "longDescription": "This property shall contain a URI to the destination where the events will be sent."
                },
                "EventTypes": {
                    "type": "array",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Event.v1_0_0.json#/definitions/EventType"
                    },
                    "readonly": true,
                    "description": "This property shall contain the types of events that shall be sent to the desination."
                },
                "Context": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "readonly": false,
                    "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."
                },
                "Protocol": {
                    "$ref": "#/definitions/EventDestinationProtocol",
                    "readonly": true,
                    "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."
                },
                "HttpHeaders": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/HttpHeaderProperty"
                    },
                    "description": "This is for setting HTTP headers, such as authorization information.  This object will be null on a GET.",
                    "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."
                }
            },
            "required": [
                "Id",
                "Name",
                "Context"
            ],
            "requiredOnCreate": [
                "Destination",
                "EventTypes",
                "Protocol"
            ],
            "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."
        }
    },
    "copyright": "Copyright 2014-2017 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
}
