<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:tns="http://www.entaxy.ru/permission/"
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  name="permission-service"
                  targetNamespace="http://www.entaxy.ru/permission/">
    <wsdl:types>
        <xsd:schema targetNamespace="http://www.entaxy.ru/permission/" elementFormDefault="qualified">
            <xsd:element name="permissionCommon" type="tns:permissionCommonType"/>
            <xsd:complexType name="permissionCommonType">
                <xsd:sequence>
                    <xsd:element name="objectId" type="xsd:long"/>
                    <xsd:element name="objectType" type="xsd:string"/>
                    <xsd:element name="subjectId" type="xsd:string"/>
                    <xsd:element name="subjectType" type="xsd:string"/>
                    <xsd:element name="action" type="xsd:string" minOccurs="0"/>
                </xsd:sequence>
            </xsd:complexType>

            <xsd:element name="permissionId" type="xsd:long"/>

            <xsd:element name="permissionList" type="tns:permissionListType"/>
            <xsd:complexType name="permissionListType">
                <xsd:sequence>
                    <xsd:element name="permission" type="tns:permissionType" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:complexType>

            <xsd:element name="permission" type="tns:permissionType"/>
            <xsd:complexType name="permissionType">
                <xsd:sequence>
                    <xsd:element name="permissionId" type="xsd:long"/>
                    <xsd:element name="objectId" type="xsd:long"/>
                    <xsd:element name="objectType" type="xsd:string"/>
                    <xsd:element name="subjectId" type="xsd:string"/>
                    <xsd:element name="subjectType" type="xsd:string"/>
                    <xsd:element name="action" type="xsd:string" minOccurs="0"/>
                </xsd:sequence>
            </xsd:complexType>

            <xsd:element name="response" type="xsd:boolean"/>

        </xsd:schema>
    </wsdl:types>

    <wsdl:message name="checkRequest">
        <wsdl:part name="request" element="tns:permissionCommon"/>
    </wsdl:message>
    <wsdl:message name="checkResponse">
        <wsdl:part name="response" element="tns:response"/>
    </wsdl:message>

    <wsdl:message name="getRequest">
        <wsdl:part name="request" element="tns:permissionId"/>
    </wsdl:message>
    <wsdl:message name="getResponse">
        <wsdl:part name="response" element="tns:permission"/>
    </wsdl:message>

    <wsdl:message name="getByAllParamsRequest">
        <wsdl:part name="request" element="tns:permissionCommon"/>
    </wsdl:message>
    <wsdl:message name="getByAllParamsResponse">
        <wsdl:part name="response" element="tns:permission"/>
    </wsdl:message>

    <wsdl:message name="createRequest">
        <wsdl:part name="request" element="tns:permissionCommon"/>
    </wsdl:message>
    <wsdl:message name="createResponse">
        <wsdl:part name="response" element="tns:permission"/>
    </wsdl:message>

    <wsdl:message name="updateRequest">
        <wsdl:part name="request" element="tns:permission"/>
    </wsdl:message>
    <wsdl:message name="updateResponse">
        <wsdl:part name="response" element="tns:permission"/>
    </wsdl:message>

    <wsdl:message name="deleteRequest">
        <wsdl:part name="request" element="tns:permissionCommon"/>
    </wsdl:message>
    <wsdl:message name="deleteResponse">
        <wsdl:part name="response" element="tns:response"/>
    </wsdl:message>

    <wsdl:portType name="permission-service">
        <wsdl:operation name="check">
            <wsdl:input message="tns:checkRequest"/>
            <wsdl:output message="tns:checkResponse"/>
        </wsdl:operation>
        <wsdl:operation name="get">
            <wsdl:input message="tns:getRequest"/>
            <wsdl:output message="tns:getResponse"/>
        </wsdl:operation>
        <wsdl:operation name="getByAllParams">
            <wsdl:input message="tns:getByAllParamsRequest"/>
            <wsdl:output message="tns:getByAllParamsResponse"/>
        </wsdl:operation>
        <wsdl:operation name="create">
            <wsdl:input message="tns:createRequest"/>
            <wsdl:output message="tns:createResponse"/>
        </wsdl:operation>
        <wsdl:operation name="update">
            <wsdl:input message="tns:updateRequest"/>
            <wsdl:output message="tns:updateResponse"/>
        </wsdl:operation>
        <wsdl:operation name="delete">
            <wsdl:input message="tns:deleteRequest"/>
            <wsdl:output message="tns:deleteResponse"/>
        </wsdl:operation>
    </wsdl:portType>

    <wsdl:binding name="permission-serviceSOAP" type="tns:permission-service">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation name="check">
            <soap:operation soapAction="http://www.entaxy.ru/permission/check"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>

        <wsdl:operation name="get">
            <soap:operation soapAction="http://www.entaxy.ru/permission/get"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>

        <wsdl:operation name="getByAllParams">
            <soap:operation soapAction="http://www.entaxy.ru/permission/get-by-all-params"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>

        <wsdl:operation name="create">
            <soap:operation soapAction="http://www.entaxy.ru/permission/create"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>

        <wsdl:operation name="update">
            <soap:operation soapAction="http://www.entaxy.ru/permission/update"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>

        <wsdl:operation name="delete">
            <soap:operation soapAction="http://www.entaxy.ru/permission/delete"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>

    <wsdl:service name="permission-service">
        <wsdl:port name="permission-serviceSOAP" binding="tns:permission-serviceSOAP">
            <soap:address location="http://dev.esbHost.ru/"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
