<?xml version="1.0"?>

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
     xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
     xmlns:tns="http://sdk.bt.com/2007/01/ApplicationRegistration"
     xmlns:sdk="http://sdk.bt.com/2007/01/ApplicationRegistration"
     targetNamespace="http://sdk.bt.com/2007/01/ApplicationRegistration">

    <!--

           (C) British Telecommunications plc, 2007, All Rights Reserved

	   generated: Fri Feb 16 18:29:52 2007 

    -->

   <wsdl:types>
      <xs:schema elementFormDefault="qualified" 
            targetNamespace="http://sdk.bt.com/2007/01/ApplicationRegistration">

         <xs:complexType name="Application">
            <xs:sequence>
                <xs:element name="GUID" type="xs:string"/>
                <xs:element name="name" type="xs:string"/>
                <xs:element name="ownerEmails" type="sdk:OwnerEmails"/>
                <xs:element name="email" type="xs:string"/>
                <xs:element name="certificates" type="sdk:Certificates"/>
            </xs:sequence>
         </xs:complexType>

         <xs:complexType name="Applications" >
            <xs:sequence>
               <xs:element name="application" type="sdk:Application" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>

         <xs:complexType name="Certificate">
            <xs:sequence>
                <xs:element name="encodedPEM" type="xs:string"/>
                <xs:element name="encodedDER" type="xs:base64Binary"/>
                <xs:element name="pkcs7PEM" type="xs:string"/>
                <xs:element name="pkcs7DER" type="xs:base64Binary"/>
                <xs:element name="revoked" type="xs:boolean"/>
            </xs:sequence>
         </xs:complexType>

         <xs:complexType name="Certificates" >
            <xs:sequence>
               <xs:element name="certificate" type="sdk:Certificate" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>

         <xs:complexType name="OwnerEmails" >
            <xs:sequence>
               <xs:element name="ownerEmail" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>

        <xs:element name="addApplication">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="ownerEmail" type="xs:string"/>
                <xs:element name="applicationEmail" type="xs:string"/>
                <xs:element name="applicationName" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="addApplicationResponse">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="application" type="sdk:Application"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>

        <xs:element name="createCertificateForApplication">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="GUID" type="xs:string"/>
                <xs:element name="CSR" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="createCertificateForApplicationResponse">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="certificate" type="sdk:Certificate"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>

        <xs:element name="deleteApplication">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="GUID" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="deleteApplicationResponse">
	  <xs:complexType/>
	</xs:element>

        <xs:element name="disableApplication">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="GUID" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="disableApplicationResponse">
	  <xs:complexType/>
	</xs:element>

        <xs:element name="enableApplication">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="GUID" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="enableApplicationResponse">
	  <xs:complexType/>
	</xs:element>

        <xs:element name="getApplicationsForOwner">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="ownerEmail" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="getApplicationsForOwnerResponse">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="applications" type="sdk:Applications"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>

        <xs:element name="revokeCertificateForApplication">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="GUID" type="xs:string"/>
                <xs:element name="certificate" type="sdk:Certificate"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="revokeCertificateForApplicationResponse">
	  <xs:complexType/>
	</xs:element>

        <xs:element name="unregisterApplication">
	  <xs:complexType>
            <xs:sequence>
                <xs:element name="GUID" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
	</xs:element>
        <xs:element name="unregisterApplicationResponse">
	  <xs:complexType/>
	</xs:element>

      </xs:schema>
   </wsdl:types>

   <wsdl:message name="addApplicationRequest">
      <wsdl:part name="parameters" element="sdk:addApplication"/>
   </wsdl:message>
   <wsdl:message name="addApplicationResponse">
      <wsdl:part name="parameters" element="sdk:addApplicationResponse"/>
   </wsdl:message>

   <wsdl:message name="createCertificateForApplicationRequest">
      <wsdl:part name="parameters" element="sdk:createCertificateForApplication"/>
   </wsdl:message>
   <wsdl:message name="createCertificateForApplicationResponse">
      <wsdl:part name="parameters" element="sdk:createCertificateForApplicationResponse"/>
   </wsdl:message>

   <wsdl:message name="deleteApplicationRequest">
      <wsdl:part name="parameters" element="sdk:deleteApplication"/>
   </wsdl:message>
   <wsdl:message name="deleteApplicationResponse">
      <wsdl:part name="parameters" element="sdk:deleteApplicationResponse"/>
   </wsdl:message>

   <wsdl:message name="disableApplicationRequest">
      <wsdl:part name="parameters" element="sdk:disableApplication"/>
   </wsdl:message>
   <wsdl:message name="disableApplicationResponse">
      <wsdl:part name="parameters" element="sdk:disableApplicationResponse"/>
   </wsdl:message>

   <wsdl:message name="enableApplicationRequest">
      <wsdl:part name="parameters" element="sdk:enableApplication"/>
   </wsdl:message>
   <wsdl:message name="enableApplicationResponse">
      <wsdl:part name="parameters" element="sdk:enableApplicationResponse"/>
   </wsdl:message>

   <wsdl:message name="getApplicationsForOwnerRequest">
      <wsdl:part name="parameters" element="sdk:getApplicationsForOwner"/>
   </wsdl:message>
   <wsdl:message name="getApplicationsForOwnerResponse">
      <wsdl:part name="parameters" element="sdk:getApplicationsForOwnerResponse"/>
   </wsdl:message>

   <wsdl:message name="revokeCertificateForApplicationRequest">
      <wsdl:part name="parameters" element="sdk:revokeCertificateForApplication"/>
   </wsdl:message>
   <wsdl:message name="revokeCertificateForApplicationResponse">
      <wsdl:part name="parameters" element="sdk:revokeCertificateForApplicationResponse"/>
   </wsdl:message>

   <wsdl:message name="unregisterApplicationRequest">
      <wsdl:part name="parameters" element="sdk:unregisterApplication"/>
   </wsdl:message>
   <wsdl:message name="unregisterApplicationResponse">
      <wsdl:part name="parameters" element="sdk:unregisterApplicationResponse"/>
   </wsdl:message>

   <wsdl:portType name="ApplicationRegistrationInterface">
      <wsdl:operation name="addApplication">
         <wsdl:input name="addApplicationRequest" message="tns:addApplicationRequest"/>
         <wsdl:output name="addApplicationResponse" message="tns:addApplicationResponse"/>
      </wsdl:operation>
      <wsdl:operation name="createCertificateForApplication">
         <wsdl:input name="createCertificateForApplicationRequest" message="tns:createCertificateForApplicationRequest"/>
         <wsdl:output name="createCertificateForApplicationResponse" message="tns:createCertificateForApplicationResponse"/>
      </wsdl:operation>
      <wsdl:operation name="deleteApplication">
         <wsdl:input name="deleteApplicationRequest" message="tns:deleteApplicationRequest"/>
         <wsdl:output name="deleteApplicationResponse" message="tns:deleteApplicationResponse"/>
      </wsdl:operation>
      <wsdl:operation name="disableApplication">
         <wsdl:input name="disableApplicationRequest" message="tns:disableApplicationRequest"/>
         <wsdl:output name="disableApplicationResponse" message="tns:disableApplicationResponse"/>
      </wsdl:operation>
      <wsdl:operation name="enableApplication">
         <wsdl:input name="enableApplicationRequest" message="tns:enableApplicationRequest"/>
         <wsdl:output name="enableApplicationResponse" message="tns:enableApplicationResponse"/>
      </wsdl:operation>
      <wsdl:operation name="getApplicationsForOwner">
         <wsdl:input name="getApplicationsForOwnerRequest" message="tns:getApplicationsForOwnerRequest"/>
         <wsdl:output name="getApplicationsForOwnerResponse" message="tns:getApplicationsForOwnerResponse"/>
      </wsdl:operation>
      <wsdl:operation name="revokeCertificateForApplication">
         <wsdl:input name="revokeCertificateForApplicationRequest" message="tns:revokeCertificateForApplicationRequest"/>
         <wsdl:output name="revokeCertificateForApplicationResponse" message="tns:revokeCertificateForApplicationResponse"/>
      </wsdl:operation>
      <wsdl:operation name="unregisterApplication">
         <wsdl:input name="unregisterApplicationRequest" message="tns:unregisterApplicationRequest"/>
         <wsdl:output name="unregisterApplicationResponse" message="tns:unregisterApplicationResponse"/>
      </wsdl:operation>
   </wsdl:portType>

   <wsdl:binding name="ApplicationRegistrationSoapBinding" type="tns:ApplicationRegistrationInterface">
      <wsoap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
      <wsdl:operation name="addApplication">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/01/ApplicationRegistration#addApplication"/>
         <wsdl:input name="addApplicationRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="addApplicationResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="createCertificateForApplication">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/01/ApplicationRegistration#createCertificateForApplication"/>
         <wsdl:input name="createCertificateForApplicationRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="createCertificateForApplicationResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="deleteApplication">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/01/ApplicationRegistration#deleteApplication"/>
         <wsdl:input name="deleteApplicationRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="deleteApplicationResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="disableApplication">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/01/ApplicationRegistration#disableApplication"/>
         <wsdl:input name="disableApplicationRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="disableApplicationResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="enableApplication">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/01/ApplicationRegistration#enableApplication"/>
         <wsdl:input name="enableApplicationRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="enableApplicationResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="getApplicationsForOwner">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/01/ApplicationRegistration#getApplicationsForOwner"/>
         <wsdl:input name="getApplicationsForOwnerRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="getApplicationsForOwnerResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="revokeCertificateForApplication">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/01/ApplicationRegistration#revokeCertificateForApplication"/>
         <wsdl:input name="revokeCertificateForApplicationRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="revokeCertificateForApplicationResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="unregisterApplication">
         <wsoap:operation soapAction="http://sdk.bt.com/2007/01/ApplicationRegistration#unregisterApplication"/>
         <wsdl:input name="unregisterApplicationRequest">
            <wsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="unregisterApplicationResponse">
            <wsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>

   <wsdl:service name="ApplicationRegistrationService">
      <wsdl:port name="ApplicationRegistrationEndpoint" binding="tns:ApplicationRegistrationSoapBinding">
         <wsoap:address location="http://localhost/endpoint/ApplicationRegistration/2007/01"/>
      </wsdl:port>
   </wsdl:service>

</wsdl:definitions>
