<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!--################################################################################       -->
<!--# Redfish Schema:  EventService  v1.2.0-->
<!--#                                                                                      -->
<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
<!--# available at http://www.dmtf.org/standards/redfish                                   -->
<!--# Copyright 2014-2018 DMTF.                                                            -->
<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
<!--################################################################################       -->
<!---->
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">

  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Measures.V1.xml">
    <edmx:Include Namespace="Org.OData.Measures.V1" Alias="Measures"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
    <edmx:Include Namespace="Resource"/>
    <edmx:Include Namespace="Resource.v1_0_0"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Event_v1.xml">
    <edmx:Include Namespace="Event"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/EventDestinationCollection_v1.xml">
    <edmx:Include Namespace="EventDestinationCollection"/>
  </edmx:Reference>
  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/EventDestination_v1.xml">
    <edmx:Include Namespace="EventDestination"/>
  </edmx:Reference>

  <edmx:DataServices>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

      <EntityType Name="EventService" BaseType="Resource.v1_0_0.Resource" Abstract="true">
        <Annotation Term="OData.Description" String="The Event Service resource contains properties for managing event subcriptions and generates the events sent to subscribers.  The resource has links to the actual collection of subscriptions (called Event Destinations)."/>
        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent an event service for a Redfish implementation."/>
        <Annotation Term="Capabilities.InsertRestrictions">
          <Record>
            <PropertyValue Property="Insertable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.UpdateRestrictions">
          <Record>
            <PropertyValue Property="Updatable" Bool="true"/>
            <Annotation Term="OData.Description" String="The Event Service can be updated to enable and disable the service."/>
          </Record>
        </Annotation>
        <Annotation Term="Capabilities.DeleteRestrictions">
          <Record>
            <PropertyValue Property="Deletable" Bool="false"/>
          </Record>
        </Annotation>
        <Annotation Term="Redfish.Uris">
          <Collection>
            <String>/redfish/v1/EventService</String>
          </Collection>
        </Annotation>
      </EntityType>

      <Action Name="SubmitTestEvent" IsBound="true">
        <Annotation Term="OData.Description" String="This action is used to generate a test event."/>
        <Annotation Term="OData.LongDescription" String="This action shall add a test event to the event service with the event data specified in the action parameters. This message should then be sent to any appropriate ListenerDestination targets."/>
        <Parameter Name="EventService" Type="EventService.v1_0_0.Actions"/>
        <Parameter Name="EventType" Type="Event.EventType" Nullable="false">
          <Annotation Term="OData.Description" String="This is the type of event to be added."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall define the property name for which the following allowable values apply."/>
        </Parameter>
        <Parameter Name="EventId" Type="Edm.String" Nullable="false">
          <Annotation Term="OData.Description" String="This is the ID of event to be added."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall have the same semantics as the EventId property in the Event schema for Redfish."/>
        </Parameter>
        <Parameter Name="EventTimestamp" Type="Edm.DateTimeOffset" Nullable="false">
          <Annotation Term="OData.Description" String="This is the time stamp of event to be added."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall have the same semantics as the EventTimestamp property in the Event schema for Redfish."/>
        </Parameter>
        <Parameter Name="Severity" Type="Edm.String" Nullable="false">
          <Annotation Term="OData.Description" String="This is the Severity of event to be added."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall have the same semantics as the Severity property in the Event schema for Redfish."/>
        </Parameter>
        <Parameter Name="Message" Type="Edm.String" Nullable="false">
          <Annotation Term="OData.Description" String="This is the human readable message of event to be added."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall have the same semantics as the Message property in the Event schema for Redfish."/>
        </Parameter>
        <Parameter Name="MessageId" Type="Edm.String" Nullable="false">
          <Annotation Term="OData.Description" String="This is the message ID of event to be added."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall have the same semantics as the MessageId property in the Event schema for Redfish."/>
        </Parameter>
        <Parameter Name="MessageArgs" Type="Collection(Edm.String)" Nullable="false">
          <Annotation Term="OData.Description" String="This is the array of message arguments of the event to be added."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall have the same semantics as the MessageArgs property in the Event schema for Redfish."/>
        </Parameter>
        <Parameter Name="OriginOfCondition" Type="Edm.String" Nullable="false">
          <Annotation Term="OData.Description" String="This is the string of the URL within the OriginOfCondition property of the event to be added.  It is not a reference object."/>
          <Annotation Term="OData.LongDescription" String="This parameter shall be a string that represents the URL contained by the OriginOfCondition property in the Event schema for Redfish."/>
          <Annotation Term="OData.IsURL"/>
        </Parameter>
      </Action>

    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_0_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="1.0"/>

      <EntityType Name="EventService" BaseType="EventService.EventService">
        <Property Name="ServiceEnabled" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="This indicates whether this service is enabled."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating whether this service is enabled."/>
        </Property>
        <Property Name="DeliveryRetryAttempts" Type="Edm.Int64" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="This is the number of attempts an event posting is retried before the subscription is terminated.  This retry is at the service level, meaning the HTTP POST to the Event Destination was returned by the HTTP operation as unsuccessful (4xx or 5xx return code) or an HTTP timeout occurred this many times before the Event Destination subscription is terminated."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be the number of retrys attempted for any given event to the subscription destination before the subscription is terminated.  This retry is at the service level, meaning the HTTP POST to the Event Destination was returned by the HTTP operation as unsuccessful (4xx or 5xx return code) or an HTTP timeout occurred this many times before the Event Destination subscription is terminated."/>
        </Property>
        <Property Name="DeliveryRetryIntervalSeconds" Type="Edm.Int64" Nullable="false">
          <Annotation Term="Measures.Unit" String="s"/>
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
          <Annotation Term="OData.Description" String="This represents the number of seconds between retry attempts for sending any given Event."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be the interval in seconds between the retry attempts for any given event to the subscription destination."/>
        </Property>
        <Property Name="EventTypesForSubscription" Type="Collection(Event.EventType)" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This is the types of Events that can be subscribed to."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be the types of events that subscriptions can subscribe to.  The semantics associated with the enumerations values are defined in the Redfish specification."/>
        </Property>
        <Property Name="Actions" Type="EventService.v1_0_0.Actions" Nullable="false">
          <Annotation Term="OData.Description" String="The available actions for this resource."/>
          <Annotation Term="OData.LongDescription" String="The Actions property shall contain the available actions for this resource."/>
        </Property>
        <NavigationProperty Name="Subscriptions" Type="EventDestinationCollection.EventDestinationCollection" ContainsTarget="true" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This is a reference to a collection of Event Destination resources."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall contain the link to a collection of type EventDestinationCollection."/>
          <Annotation Term="OData.AutoExpandReferences"/>
        </NavigationProperty>
        <Property Name="Status" Type="Resource.Status" Nullable="false">
          <Annotation Term="OData.Description" String="This property describes the status and health of the resource and its children."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the resource."/>
        </Property>
      </EntityType>

      <ComplexType Name="Actions">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="The available actions for this resource."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
        <Property Name="Oem" Type="EventService.v1_0_0.OemActions" Nullable="false">
          <Annotation Term="OData.Description" String="This property contains the available OEM specific actions for this resource."/>
          <Annotation Term="OData.LongDescription" String="This property shall contain any additional OEM actions for this resource."/>
        </Property>
      </ComplexType>

      <ComplexType Name="OemActions">
        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
        <Annotation Term="OData.Description" String="The available OEM specific actions for this resource."/>
        <Annotation Term="OData.LongDescription" String="This type shall contain any additional OEM actions for this resource."/>
      </ComplexType>

    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_0_2">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
      <EntityType Name="EventService" BaseType="EventService.v1_0_0.EventService"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_0_3">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to add explicit Permissions annotations to all properties for clarity."/>
      <EntityType Name="EventService" BaseType="EventService.v1_0_2.EventService"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_0_4">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
      <EntityType Name="EventService" BaseType="EventService.v1_0_3.EventService"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_0_5">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated.  In this case, DeliveryRetryAttempts description was updated."/>
      <EntityType Name="EventService" BaseType="EventService.v1_0_4.EventService"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_0_6">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to change references to EventType to use the unversioned definition.  It was also created to correct the Descriptions and LongDescriptions used in the defined Actions."/>
      <EntityType Name="EventService" BaseType="EventService.v1_0_5.EventService"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_0_7">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to change DeliveryRetryAttempts and DeliveryRetryIntervalSeconds properties to be writable."/>
      <EntityType Name="EventService" BaseType="EventService.v1_0_6.EventService"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_0_8">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number.  It was also created to clarify the OriginOfCondition parameter in the SubmitTestEvent action."/>
      <EntityType Name="EventService" BaseType="EventService.v1_0_7.EventService"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_1_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2018.1"/>
      <EntityType Name="EventService" BaseType="EventService.v1_0_7.EventService">
        <Property Name="ServerSentEventUri" Type="Edm.String" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="Link to a URI for receiving Sever Sent Event representations of the events generated by this service."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a URI that specifies an HTML5 Server-Sent Event conformant endpoint."/>
          <Annotation Term="OData.IsURL"/>
        </Property>
      </EntityType>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_1_1">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number.  It was also created to clarify the OriginOfCondition parameter in the SubmitTestEvent action."/>
      <EntityType Name="EventService" BaseType="EventService.v1_1_0.EventService"/>
    </Schema>

    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="EventService.v1_2_0">
      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
      <Annotation Term="Redfish.Release" String="2018.2"/>
      <Annotation Term="OData.Description" String="This version was created to add the RegistryPrefix, ResourceType and SubordinateResources method of eventing.  It was also created to add SSEFilterPropertiesSupported."/>

      <EntityType Name="EventService" BaseType="EventService.v1_1_1.EventService">
        <Property Name="RegistryPrefixes" Type="Collection(Edm.String)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="A list of the Prefixes of the Message Registries that can be used for the RegistryPrefix property on a subscription."/>
          <Annotation Term="OData.LongDescription" String="The value of this property is the array of the Prefixes of the Message Registries that shall be allowed for an Event Subscription."/>
        </Property>
        <Property Name="ResourceTypes" Type="Collection(Edm.String)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="A list of @odata.type values (Schema names) that can be specified in a ResourceType on a subscription."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall specify an array of the valid @odata.type values that can be used for an Event Subscription."/>
        </Property>
        <Property Name="SubordinateResourcesSupported" Type="Edm.Boolean">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This indicates if the service supports the SubordinateResource property on Event Subscriptions."/>
          <Annotation Term="OData.LongDescription" String="When set to true, the service is indicating that it supports the SubordinateResource property on Event Subscriptions and on generated Events."/>
        </Property>
        <Property Name="EventFormatTypes" Type="Collection(EventDestination.EventFormatType)">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="Indicates the content types of the message that this service can send to the event destination."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall indicate the the content types of the message that this service can send to the event destination.  If this property is not present, the EventFormatType shall be assumed to be Event."/>
        </Property>
        <Property Name="SSEFilterPropertiesSupported" Type="EventService.v1_2_0.SSEFilterPropertiesSupported" Nullable="false">
          <Annotation Term="OData.Description" String="Contains a set of properties that indicate which properties are supported in the $filter query parameter for the ServerSentEventUri."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall contain a set of properties that indicate which properties are supported in the $filter query parameter for the URI indicated by the ServerSentEventUri property."/>
        </Property>
      </EntityType>

      <ComplexType Name="SSEFilterPropertiesSupported">
        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
        <Annotation Term="OData.Description" String="Contains a set of properties that indicate which properties are supported in the $filter query parameter for the ServerSentEventUri."/>
        <Annotation Term="OData.LongDescription" String="The type shall contain a set of properties that indicate which properties are supported in the $filter query parameter for the URI indicated by the ServerSentEventUri property."/>
        <Property Name="EventType" Type="Edm.Boolean" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This indicates if the EventType property is supported."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating if this service supports the use of the EventType property in the $filter query parameter as described by the specification."/>
        </Property>
        <Property Name="MetricReportDefinition" Type="Edm.Boolean" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This indicates if the MetricReportDefinition property is supported."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating if this service supports the use of the MetricReportDefinition property in the $filter query parameter as described by the specification."/>
        </Property>
        <Property Name="RegistryPrefix" Type="Edm.Boolean" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This indicates if the RegistryPrefix property is supported."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating if this service supports the use of the RegistryPrefix property in the $filter query parameter as described by the specification."/>
        </Property>
        <Property Name="ResourceType" Type="Edm.Boolean" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This indicates if the ResourceType property is supported."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating if this service supports the use of the ResourceType property in the $filter query parameter as described by the specification."/>
        </Property>
        <Property Name="EventFormatType" Type="Edm.Boolean" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This indicates if the EventFormatType property is supported."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating if this service supports the use of the EventFormatType property in the $filter query parameter as described by the specification."/>
        </Property>
        <Property Name="MessageId" Type="Edm.Boolean" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This indicates if the MessageId property is supported."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating if this service supports the use of the MessageId property in the $filter query parameter as described by the specification."/>
        </Property>
        <Property Name="OriginResource" Type="Edm.Boolean" Nullable="false">
          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
          <Annotation Term="OData.Description" String="This indicates if the OriginResource property is supported."/>
          <Annotation Term="OData.LongDescription" String="The value of this property shall be a boolean indicating if this service supports the use of the OriginResource property in the $filter query parameter as described by the specification."/>
        </Property>
      </ComplexType>

      <EnumType Name="EventFormatType">
        <Member Name="Event">
          <Annotation Term="OData.Description" String="The subscription destination will receive JSON Bodies of the Resource Type Event."/>
        </Member>
        <Member Name="MetricReport">
          <Annotation Term="OData.Description" String="The subscription destination will receive JSON Bodies of the Resource Type MetricReport."/>
        </Member>
      </EnumType>
    </Schema>

  </edmx:DataServices>
</edmx:Edmx>
