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

      <xsd:complexType name="ReportAddFollowType">
        <xsd:sequence>
          <xsd:element name="request_token" type="xsd:string" minOccurs="0" maxOccurs="1" />
          <xsd:element name="follow" type="report:FollowType"
                       minOccurs="1" maxOccurs="1" />
          <xsd:element name="file" minOccurs="0" maxOccurs="unbounded">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="content" type="xsd:base64Binary"
                             minOccurs="1" maxOccurs="1" />
              </xsd:sequence>
              <xsd:attribute name="id" type="base:IDType" use="required"/>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="report_id" type="base:IDType" use="required" />
      </xsd:complexType>

      <xsd:complexType name="ReportAddFollowsRequestType">
        <xsd:sequence>
          <xsd:element name="request_token" type="xsd:string" minOccurs="0" maxOccurs="1" />
          <xsd:element name="add_follow" type="typens:ReportAddFollowType" minOccurs="1" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="ReportAddFollowsResponseType">
        <xsd:sequence>
          <xsd:element name="report" type="report:ReportType" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="ReportGetReportVersionsRequestType">
        <xsd:sequence>
          <xsd:element name="report_item" type="base_types:ItemVersionType" 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="target" type="report:SearchTargetType" use="optional" />
      </xsd:complexType>
      <xsd:complexType name="ReportGetReportVersionsResponseType">
        <xsd:sequence>
          <xsd:element name="report_item" type="base_types:ItemVersionResultType" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="ReportGetReportByIdRequestType">
        <xsd:sequence>
          <xsd:element name="report_id" type="base:IDType" minOccurs="1" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="ReportGetReportByIdResponseType">
        <xsd:sequence>
          <xsd:element name="report" type="report:ReportType" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="ReportGetFollowsRequestType">
        <xsd:attribute name="report_id"  type="base:IDType" use="required"/>
        <xsd:attribute name="limit"  type="xsd:unsignedLong" use="required"/>
        <xsd:attribute name="offset"  type="xsd:unsignedLong" use="required"/>
      </xsd:complexType>
      <xsd:complexType name="ReportGetFollowsResponseType">
        <xsd:sequence>
          <xsd:element name="follows" type="report:FollowType" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="ReportRemoveFollowsRequestType">
        <xsd:sequence>
          <xsd:element name="request_token" type="xsd:string" minOccurs="0" maxOccurs="1" />
          <xsd:element name="follow_id" type="base:IDType" minOccurs="1" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="ReportRemoveReportsRequestType">
        <xsd:sequence>
          <xsd:element name="request_token" type="xsd:string" minOccurs="0" maxOccurs="1" />
          <xsd:element name="report_id" type="base:IDType" minOccurs="1" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="ReportSearchReportsRequestType">
        <xsd:attribute name="target" type="report:SearchTargetType" use="required" />
        <xsd:attribute name="keyword" type="xsd:string" use="required" />
      </xsd:complexType>
      <xsd:complexType name="ReportSearchReportsResponseType">
        <xsd:sequence>
          <xsd:element name="report" type="report:ReportType" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="ReportFileDownloadRequestType">
        <xsd:attribute name="file_id" type="base:IDType" use="required" />
      </xsd:complexType>
      <xsd:complexType name="ReportFileDownloadResponseType">
        <xsd:sequence>
          <xsd:element name="file" type="base_types:FileBodyType" minOccurs="0" maxOccurs="1" />
        </xsd:sequence>
      </xsd:complexType>
    </xsd:schema>
  </types>
  
  <message name="ReportAddFollowsRequest">
    <part name="parameters" type="typens:ReportAddFollowsRequestType" />
  </message>
  <message name="ReportAddFollowsResponse">
    <part name="returns" type="typens:ReportAddFollowsResponseType" />
  </message>

  <message name="ReportGetReportVersionsRequest">
    <part name="parameters" type="typens:ReportGetReportVersionsRequestType" />
  </message>
  <message name="ReportGetReportVersionsResponse">
    <part name="returns" type="typens:ReportGetReportVersionsResponseType" />
  </message>

  <message name="ReportGetReportByIdRequest">
    <part name="parameters" type="typens:ReportGetReportByIdRequestType" />
  </message>
  <message name="ReportGetReportByIdResponse">
    <part name="returns" type="typens:ReportGetReportByIdResponseType" />
  </message>

  <message name="ReportGetFollowsRequest">
    <part name="parameters" type="typens:ReportGetFollowsRequestType" />
  </message>
  <message name="ReportGetFollowsResponse">
    <part name="returns" type="typens:ReportGetFollowsResponseType" />
  </message>

  <message name="ReportRemoveFollowsRequest">
    <part name="parameters" type="typens:ReportRemoveFollowsRequestType" />
  </message>

  <message name="ReportRemoveReportsRequest">
    <part name="parameters" type="typens:ReportRemoveReportsRequestType" />
  </message>

  <message name="ReportSearchReportsRequest">
    <part name="parameters" type="typens:ReportSearchReportsRequestType" />
  </message>
  <message name="ReportSearchReportsResponse">
    <part name="returns" type="typens:ReportSearchReportsResponseType" />
  </message>

  <message name="ReportFileDownloadRequest">
    <part name="parameters" type="typens:ReportFileDownloadRequestType" />
  </message>
  <message name="ReportFileDownloadResponse">
    <part name="returns" type="typens:ReportFileDownloadResponseType" />
  </message>

  <portType name="ReportPort">
    <operation name="ReportGetReportVersions">
      <documentation>
      </documentation>
      <input message="tns:ReportGetReportVersionsRequest" />
      <output message="tns:ReportGetReportVersionsResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="ReportGetReportById">
      <documentation>
      </documentation>
      <input message="tns:ReportGetReportByIdRequest" />
      <output message="tns:ReportGetReportByIdResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="ReportAddFollows">
      <documentation>
      </documentation>
      <input message="tns:ReportAddFollowsRequest" />
      <output message="tns:ReportAddFollowsResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="ReportGetFollows">
      <documentation>
      </documentation>
      <input message="tns:ReportGetFollowsRequest" />
      <output message="tns:ReportGetFollowsResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="ReportRemoveFollows">
      <documentation>
      </documentation>
      <input message="tns:ReportRemoveFollowsRequest" />
      <output message="base_services:EmptyResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="ReportRemoveReports">
      <documentation>
      </documentation>
      <input message="tns:ReportRemoveReportsRequest" />
      <output message="base_services:EmptyResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="ReportSearchReports">
      <documentation>
      </documentation>
      <input message="tns:ReportSearchReportsRequest" />
      <output message="tns:ReportSearchReportsResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>

    <operation name="ReportFileDownload">
      <documentation>
      </documentation>
      <input message="tns:ReportFileDownloadRequest" />
      <output message="tns:ReportFileDownloadResponse" />
      <fault name="CybozuError" message="base_services:Fault" />
    </operation>
  </portType>
  
  <binding name="ReportBinding" type="tns:ReportPort">
    <soap12:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />

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

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

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

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

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

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

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

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