<?xml version="1.0" ?>
<definitions name="CybozuStarServices"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             targetNamespace="http://wsdl.cybozu.co.jp/star/2008"
             xmlns:typens="http://wsdl.cybozu.co.jp/star/2008/types"
             xmlns:tns="http://wsdl.cybozu.co.jp/star/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/star/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:base_types="http://wsdl.cybozu.co.jp/base/2008/types"
                xmlns:star="http://schemas.cybozu.co.jp/star/2008">
                
      <xsd:import namespace="http://schemas.cybozu.co.jp/base/2008"
                  schemaLocation="base.xsd" />
      <xsd:import namespace="http://schemas.cybozu.co.jp/star/2008"
                  schemaLocation="star.xsd" />
      <xsd:import namespace="http://wsdl.cybozu.co.jp/base/2008/types" />

      <xsd:complexType name="StarIDType">
        <xsd:attribute name="module_id" type="base:IDType" use="required" />
        <xsd:attribute name="item" type="base:NonBlankStringType" use="required" />
      </xsd:complexType>
      
      <xsd:complexType name="StarGetStarsByIdRequestType">
        <xsd:sequence>
          <xsd:element name="star_id" type="base:IDType"
                       minOccurs="1" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      
      <xsd:complexType name="StarGetStarsByIdResponseType">
        <xsd:sequence>
          <xsd:element name="star_data" type="star:StarDataType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      
      <xsd:complexType name="StarGetStarVersionsRequestType">
        <xsd:sequence>
          <xsd:element name="star_item" type="base_types:ItemVersionType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="StarGetStarVersionsResponseType">
        <xsd:sequence>
          <xsd:element name="star_item" type="base_types:ItemVersionResultType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      
      <xsd:complexType name="StarRemoveStarsRequestType">
        <xsd:sequence>
          <xsd:element name="request_token" type="xsd:string" minOccurs="0" maxOccurs="1" />
          <xsd:element name="star_item" minOccurs="1" maxOccurs="unbounded">
            <xsd:complexType>
              <xsd:complexContent>
                <xsd:extension base="typens:StarIDType">
                  <xsd:attribute name="date" type="xsd:date" use="optional" />
                  <xsd:attribute name="is_draft" type="xsd:boolean" use="optional" />
                </xsd:extension>
              </xsd:complexContent>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      
      <xsd:complexType name="StarAddStarsRequestType">
        <xsd:sequence>
          <xsd:element name="request_token" type="xsd:string" minOccurs="0" maxOccurs="1" />
          <xsd:element name="star_item" minOccurs="1" maxOccurs="unbounded">
            <xsd:complexType>
              <xsd:complexContent>
                <xsd:extension base="typens:StarIDType">
                  <xsd:attribute name="date" type="xsd:date" use="optional" />
                  <xsd:attribute name="is_draft" type="xsd:boolean" use="optional" />
                </xsd:extension>
              </xsd:complexContent>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="StarAddStarsResponseType">
        <xsd:sequence>
          <xsd:element name="star_data" type="star:StarDataType"
                       minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      
      <xsd:complexType name="StarGetProfilesRequestType"></xsd:complexType>
      <xsd:complexType name="StarGetProfilesResponseType">
        <xsd:attribute name="star_num_allow" type="xsd:positiveInteger" use="required"/>
      </xsd:complexType>
    </xsd:schema>
  </types>

  <message name="StarGetStarsByIdRequest">
    <part name="parameters" type="typens:StarGetStarsByIdRequestType" />
  </message>
  <message name="StarGetStarsByIdResponse">
    <part name="returns" type="typens:StarGetStarsByIdResponseType" />
  </message>
  
  <message name="StarGetStarVersionsRequest">
    <part name="parameters" type="typens:StarGetStarVersionsRequestType" />
  </message>
  <message name="StarGetStarVersionsResponse">
    <part name="returns" type="typens:StarGetStarVersionsResponseType" />
  </message>
  
  <message name="StarRemoveStarsRequest">
    <part name="parameters" type="typens:StarRemoveStarsRequestType" />
  </message>

  <message name="StarAddStarsRequest">
    <part name="parameters" type="typens:StarAddStarsRequestType" />
  </message>

  <message name="StarAddStarsResponse">
    <part name="returns" type="typens:StarAddStarsResponseType" />
  </message>

  <message name="StarGetProfilesRequest">
    <part name="parameters" type="typens:StarGetProfilesRequestType" />
  </message>

  <message name="StarGetProfilesResponse">
    <part name="returns" type="typens:StarGetProfilesResponseType" />
  </message>

  <portType name="StarPort">
    <operation name="StarGetStarsById">
      <documentation>
        This API gets the star datas by star module id and unique id.
        The client sends list of "star_id" for specify the star to search.
      </documentation>
      <input message="tns:StarGetStarsByIdRequest" />
      <output message="tns:StarGetStarsByIdResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>
    
    <operation name="StarGetStarVersions">
      <documentation>
        This API gets the modified stars for login user.
        "star_item" is a list of star that a client has.
      </documentation>
      <input message="tns:StarGetStarVersionsRequest" />
      <output message="tns:StarGetStarVersionsResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>
    
    <operation name="StarRemoveStars">
      <documentation>
        This API will reomve star item of login user.
        "star_item" is a list of star that a client has.
      </documentation>
      <input message="tns:StarRemoveStarsRequest" />
      <output message="base_services:EmptyResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="StarAddStars">
      <documentation>
        This API will add star item of login user.
      </documentation>
      <input message="tns:StarAddStarsRequest" />
      <output message="tns:StarAddStarsResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="StarGetProfiles">
      <documentation>
        This API will get star limited value.
      </documentation>
      <input message="tns:StarGetProfilesRequest" />
      <output message="tns:StarGetProfilesResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>
  </portType>

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

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

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

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