<?xml version="1.0" ?>
<definitions name="CybozuNotificationServices"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             targetNamespace="http://wsdl.cybozu.co.jp/notification/2008"
             xmlns:typens="http://wsdl.cybozu.co.jp/notification/2008/types"
             xmlns:tns="http://wsdl.cybozu.co.jp/notification/2008"
             xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
             xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
             xmlns:base_services="http://wsdl.cybozu.co.jp/base/2008">

  <wsdl:import namespace="http://wsdl.cybozu.co.jp/base/2008" location="base.wsdl"/>

  <types>
    <xsd:schema targetNamespace="http://wsdl.cybozu.co.jp/notification/2008/types"
                xmlns="http://www.w3.org/2001/XMLSchema"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:base="http://schemas.cybozu.co.jp/base/2008"
                xmlns:notification="http://schemas.cybozu.co.jp/notification/2008"
                xmlns:base_types="http://wsdl.cybozu.co.jp/base/2008/types">

      <xsd:import namespace="http://schemas.cybozu.co.jp/base/2008"
                  schemaLocation="base.xsd" />
      <xsd:import namespace="http://schemas.cybozu.co.jp/notification/2008"
                  schemaLocation="notification.xsd" />
      <xsd:import namespace="http://wsdl.cybozu.co.jp/base/2008/types" />

      <xsd:complexType name="NotificationIdType">
        <xsd:attribute name="module_id" type="base:IDType" use="required" />
        <xsd:attribute name="item" type="base:NonBlankStringType" use="required" />
      </xsd:complexType>

      <xsd:complexType name="NotificationItemVersionType">
        <xsd:sequence>
          <xsd:element name="notification_id" type="typens:NotificationIdType"
                       minOccurs="1" maxOccurs="1" />
        </xsd:sequence>
        <xsd:attribute name="version" type="base:VersionType" use="required" />
      </xsd:complexType>
      <xsd:complexType name="NotificationItemVersionResultType">
        <xsd:sequence>
          <xsd:element name="notification_id" type="typens:NotificationIdType"
                       minOccurs="1" maxOccurs="1" />
        </xsd:sequence>
        <xsd:attribute name="version" type="base:VersionType" use="required" />
        <xsd:attribute name="operation" type="base_types:ItemOperationType" use="required" />
      </xsd:complexType>
      
      <xsd:complexType name="NotificationGetNotificationVersionsRequestType">
        <xsd:sequence>
          <xsd:element name="notification_item" type="typens:NotificationItemVersionType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:attribute name="start" type="xsd:dateTime" use="required" />
        <xsd:attribute name="end" type="xsd:dateTime" use="optional" />
        <xsd:attribute name="module_id" type="base:IDType" use="optional" />
      </xsd:complexType>
      <xsd:complexType name="NotificationGetNotificationVersionsResponseType">
        <xsd:sequence>
          <xsd:element name="notification_item" type="typens:NotificationItemVersionResultType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="NotificationGetNotificationsByIdRequestType">
        <xsd:sequence>
          <xsd:element name="notification_id" type="typens:NotificationIdType"
                       minOccurs="1" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="NotificationGetNotificationsByIdResponseType">
        <xsd:sequence>
          <xsd:element name="notification" type="notification:NotificationType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="NotificationGetNotificationHistoryVersionsRequestType">
        <xsd:sequence>
          <xsd:element name="notification_history_item" type="typens:NotificationItemVersionType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:attribute name="start" type="xsd:dateTime" use="required" />
        <xsd:attribute name="end" type="xsd:dateTime" use="optional" />
        <xsd:attribute name="module_id" type="base:IDType" use="optional" />
      </xsd:complexType>
      <xsd:complexType name="NotificationGetNotificationHistoryVersionsResponseType">
        <xsd:sequence>
          <xsd:element name="notification_history_item" type="typens:NotificationItemVersionResultType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="NotificationGetNotificationHistoriesByIdRequestType">
        <xsd:sequence>
          <xsd:element name="notification_history_id" type="typens:NotificationIdType"
                       minOccurs="1" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="NotificationGetNotificationHistoriesByIdResponseType">
        <xsd:sequence>
          <xsd:element name="notification_history" type="notification:NotificationType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="NotificationConfirmNotificationRequestType">
        <xsd:sequence>
          <xsd:element name="request_token" type="xsd:string" minOccurs="0" maxOccurs="1" />
          <xsd:element name="notification_id" type="typens:NotificationIdType"
                       minOccurs="1" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="NotificationConfirmNotificationResponseType">
        <xsd:sequence>
          <xsd:sequence>
            <xsd:element name="notification" type="notification:NotificationType"
                         minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="NotificationPersonalProfileType">
        <xsd:attribute name="save_notification_duration" type="xsd:positiveInteger" use="optional" />
        <xsd:attribute name="save_notification_history_duration" type="xsd:positiveInteger" use="optional" />
      </xsd:complexType>
      <xsd:complexType name="NotificationGetProfilesRequestType">
      </xsd:complexType>
      <xsd:complexType name="NotificationGetProfilesResponseType">
        <xsd:sequence>
          <xsd:element name="personal_profile" type="typens:NotificationPersonalProfileType"
                       minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="NotificationSetProfilesRequestType">
        <xsd:sequence>
          <xsd:element name="request_token" type="xsd:string" minOccurs="0" maxOccurs="1" />
          <xsd:element name="personal_profile" type="typens:NotificationPersonalProfileType"
                       minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="NotificationSetProfilesResponseType">
        <xsd:sequence>
          <xsd:element name="personal_profile" type="typens:NotificationPersonalProfileType"
                       minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>

    </xsd:schema>
  </types>

  <message name="NotificationGetNotificationVersionsRequest">
    <part name="parameters" type="typens:NotificationGetNotificationVersionsRequestType" />
  </message>
  <message name="NotificationGetNotificationVersionsResponse">
    <part name="returns" type="typens:NotificationGetNotificationVersionsResponseType" />
  </message>

  <message name="NotificationGetNotificationsByIdRequest">
    <part name="parameters" type="typens:NotificationGetNotificationsByIdRequestType" />
  </message>
  <message name="NotificationGetNotificationsByIdResponse">
    <part name="returns" type="typens:NotificationGetNotificationsByIdResponseType" />
  </message>

  <message name="NotificationGetNotificationHistoryVersionsRequest">
    <part name="parameters" type="typens:NotificationGetNotificationHistoryVersionsRequestType" />
  </message>
  <message name="NotificationGetNotificationHistoryVersionsResponse">
    <part name="returns" type="typens:NotificationGetNotificationHistoryVersionsResponseType" />
  </message>

  <message name="NotificationGetNotificationHistoriesByIdRequest">
    <part name="parameters" type="typens:NotificationGetNotificationHistoriesByIdRequestType" />
  </message>
  <message name="NotificationGetNotificationHistoriesByIdResponse">
    <part name="returns" type="typens:NotificationGetNotificationHistoriesByIdResponseType" />
  </message>

  <message name="NotificationConfirmNotificationRequest">
    <part name="parameters" type="typens:NotificationConfirmNotificationRequestType" />
  </message>
  <message name="NotificationConfirmNotificationResponse">
    <part name="returns" type="typens:NotificationConfirmNotificationResponseType" />
  </message>

  <message name="NotificationGetProfilesRequest">
    <part name="parameters" type="typens:NotificationGetProfilesRequestType" />
  </message>
  <message name="NotificationGetProfilesResponse">
    <part name="returns" type="typens:NotificationGetProfilesResponseType" />
  </message>

  <message name="NotificationSetProfilesRequest">
    <part name="parameters" type="typens:NotificationSetProfilesRequestType" />
  </message>
  <message name="NotificationSetProfilesResponse">
    <part name="returns" type="typens:NotificationSetProfilesResponseType" />
  </message>
  
  <portType name="NotificationPort">
    
    <operation name="NotificationGetNotificationVersions">
      <documentation>
        This API gets the modified notifications for login user.
        "notification_item" is a list of notifications that a client has.
      </documentation>
      <input message="tns:NotificationGetNotificationVersionsRequest" />
      <output message="tns:NotificationGetNotificationVersionsResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="NotificationGetNotificationsById">
      <documentation>
        This API gets the notifications by notification module id and unique id.
        The client sends list of "notification_id" for specify the notification to search.
      </documentation>
      <input message="tns:NotificationGetNotificationsByIdRequest" />
      <output message="tns:NotificationGetNotificationsByIdResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="NotificationGetNotificationHistoryVersions">
      <documentation>
        This API gets the modified notification histories for login user.
        "notification_history_item" is a list of notification histories that a client has.
      </documentation>
      <input message="tns:NotificationGetNotificationHistoryVersionsRequest" />
      <output message="tns:NotificationGetNotificationHistoryVersionsResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="NotificationGetNotificationHistoriesById">
      <documentation>
        This API gets the notification histories by notification module id and unique id.
        The client sends list of "notification_history_id" for specify the notification history to search.
      </documentation>
      <input message="tns:NotificationGetNotificationHistoriesByIdRequest" />
      <output message="tns:NotificationGetNotificationHistoriesByIdResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="NotificationConfirmNotification">
      <documentation>
        This API confirm notification.
      </documentation>
      <input message="tns:NotificationConfirmNotificationRequest" />
      <output message="tns:NotificationConfirmNotificationResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>
    
    <operation name="NotificationGetProfiles">
      <documentation>
        This API gets profiles in the notification application.
      </documentation>
      <input message="tns:NotificationGetProfilesRequest" />
      <output message="tns:NotificationGetProfilesResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="NotificationSetProfiles">
      <documentation>
        This API sets profiles in the notification application.
      </documentation>
      <input message="tns:NotificationSetProfilesRequest" />
      <output message="tns:NotificationSetProfilesResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

  </portType>

  <binding name="NotificationBinding" type="tns:NotificationPort">
    <soap12:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />

    <operation name="NotificationGetNotificationVersions">
      <soap12:operation soapAction="NotificationGetNotificationVersions" soapActionRequired="true" />
      <input>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </input>
      <output>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </output>
      <fault name="CybozuError">
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </fault>
    </operation>

    <operation name="NotificationGetNotificationsById">
      <soap12:operation soapAction="NotificationGetNotificationsById" soapActionRequired="true" />
      <input>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </input>
      <output>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </output>
      <fault name="CybozuError">
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </fault>
    </operation>

    <operation name="NotificationGetNotificationHistoryVersions">
      <soap12:operation soapAction="NotificationGetNotificationHistoryVersions" soapActionRequired="true" />
      <input>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </input>
      <output>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </output>
      <fault name="CybozuError">
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </fault>
    </operation>

    <operation name="NotificationGetNotificationHistoriesById">
      <soap12:operation soapAction="NotificationGetNotificationHistoriesById" soapActionRequired="true" />
      <input>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </input>
      <output>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </output>
      <fault name="CybozuError">
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </fault>
    </operation>

    <operation name="NotificationConfirmNotification">
      <soap12:operation soapAction="NotificationConfirmNotification" soapActionRequired="true" />
      <input>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </input>
      <output>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </output>
      <fault name="CybozuError">
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </fault>
    </operation>

    <operation name="NotificationGetProfiles">
      <soap12:operation soapAction="NotificationGetProfiles" soapActionRequired="true" />
      <input>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </input>
      <output>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </output>
      <fault name="CybozuError">
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </fault>
    </operation>

    <operation name="NotificationSetProfiles">
      <soap12:operation soapAction="NotificationSetProfiles" soapActionRequired="true" />
      <input>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </input>
      <output>
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </output>
      <fault name="CybozuError">
        <soap12:body use="literal" namespace="http://wsdl.cybozu.co.jp/notification/2008" />
      </fault>
    </operation>

  </binding>

</definitions>