<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:tns="https://ssp.imcce.fr/webservices/skybot3d"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  xmlns="http://schemas.xmlsoap.org/wsdl/" 
  targetNamespace="https://ssp.imcce.fr/webservices/skybot3d">

  <types>
    <xsd:schema targetNamespace="https://ssp.imcce.fr/webservices/skybot3d">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
      <xsd:complexType name="clientID">
        <xsd:sequence>
          <xsd:element name="from" type="xsd:string" minOccurs="1" maxOccurs="1"/>
          <xsd:element name="hostip" type="xsd:string" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="getSsoRequest">
        <xsd:all>
          <xsd:element name="epoch" type="xsd:string" minOccurs="1" maxOccurs="1"/>
          <xsd:element name="class" type="xsd:string" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="limit" type="xsd:int" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="coord" type="xsd:string" minOccurs="0" maxOccurs="1" default="rectangular"/>
          <xsd:element name="mime" type="xsd:string" minOccurs="1" maxOccurs="1"/>
          <xsd:element name="observer" type="xsd:string" minOccurs="0" maxOccurs="1" default=""/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="skybot3dResponse">
        <xsd:all>
          <xsd:element name="flag" type="xsd:int" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="ticket" type="xsd:long" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="status" type="xsd:int" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="nbsso" type="xsd:int" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="refdate" type="xsd:double" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="file" type="xsd:string" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="size" type="xsd:int" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="result" type="xsd:string" minOccurs="0" maxOccurs="1"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="skybot3dGetAvailabilityResponse">
        <xsd:annotation>
          <xsd:documentation>Complex type of the results of Skybot3D getAvailability method</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
          <xsd:element name="flag" type="xsd:int" minOccurs="1" maxOccurs="1"/>
          <xsd:element name="ticket" type="xsd:long" minOccurs="1" maxOccurs="1"/>
          <xsd:element name="result" type="xsd:string" minOccurs="1" maxOccurs="1"/>
          <xsd:element name="status" type="xsd:int" minOccurs="1" maxOccurs="1"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:element name="clientID" type="tns:clientID"></xsd:element>
    </xsd:schema>
  </types>

  <message name='header'>
    <documentation>Client's ID parameters which are transmitted to the Skybot3D web services</documentation>
    <part name='clientID' element='tns:clientID'/>
  </message>
  <message name="getAsterRequest">
    <documentation>Input parameters of the Skybot3D getAster method</documentation>
    <part name="inputArray" type="tns:getSsoRequest"/>
  </message>
  <message name="getAsterResponse">
    <documentation>Output parameters of the Skybot3D getAster method</documentation>
    <part name="result" type="tns:skybot3dResponse"/>
  </message>
  <message name="getCometRequest">
    <documentation>Input parameters of the Skybot3D getComet method</documentation>
    <part name="inputArray" type="tns:getSsoRequest"/>
  </message>
  <message name="getCometResponse">
    <documentation>Output parameters of the Skybot3D getComet method</documentation>
    <part name="result" type="tns:skybot3dResponse"/>
  </message>
  <message name="getPlanetRequest">
    <documentation>Input parameters of the Skybot3D getPlanet method</documentation>
    <part name="inputArray" type="tns:getSsoRequest"/>
  </message>
  <message name="getPlanetResponse">
    <documentation>Output parameters of the Skybot3D getPlanet method</documentation>
    <part name="result" type="tns:skybot3dResponse"/>
  </message>
  <message name="getSsoRequest">
    <documentation>Input parameters of the Skybot3D getSso method</documentation>
    <part name="inputArray" type="tns:getSsoRequest"/>
  </message>
  <message name="getSsoResponse">
    <documentation>Output parameters of the Skybot3D getSso method</documentation>
    <part name="result" type="tns:skybot3dResponse"/>
  </message>
  <message name="getAvailabilityRequest">
    <documentation>
      Input parameter of the Skybot3D getAvailability method
    </documentation>
    <part name="mime" type="xsd:string" />
    <part name="project" type="xsd:string">
      <wsdl:documentation>Project name: sbot2 | sbotRosetta | sbotKepler | sbotEarthL2 | sbotTESS</wsdl:documentation>
    </part>
  </message>
  <message name="getAvailabilityResponse">
    <documentation>
      Output parameters of the Skybot3D getAvailability method
    </documentation>
    <part name="result" type="tns:skybot3dGetAvailabilityResponse"/>
  </message>

  <portType name="Skybot3DPortType">
    <operation name="getAster">
      <documentation>Get state vector of asteroids (from SkyBoT db) at a given reference epoch, provided by LTE/OBSPM/CNRS</documentation>
      <input message="tns:getAsterRequest"/>
      <output message="tns:getAsterResponse"/>
    </operation>
    <operation name="getComet">
      <documentation>Get state vector of comets (from SkyBoT db) at a given reference epoch, provided by LTE/OBSPM/CNRS</documentation>
      <input message="tns:getCometRequest"/>
      <output message="tns:getCometResponse"/>
    </operation>
    <operation name="getPlanet">
      <documentation>Get state vector of planets and their satellites (from SkyBoT db) at a given reference epoch, provided by LTE/OBSPM/CNRS</documentation>
      <input message="tns:getPlanetRequest"/>
      <output message="tns:getPlanetResponse"/>
    </operation>
    <operation name="getSso">
      <documentation>Get state vector of all Solar system objects at a given reference epoch, provided by LTE/OBSPM/CNRS</documentation>
      <input message="tns:getSsoRequest"/>
      <output message="tns:getSsoResponse"/>
    </operation>
    <operation name="getAvailability">
      <documentation>Availability of the Skybot3D web-service</documentation>
      <input message="tns:getAvailabilityRequest" />
      <output message="tns:getAvailabilityResponse" />
    </operation>
  </portType>

  <binding name="Skybot3DBinding" type="tns:Skybot3DPortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="getAster">
      <soap:operation soapAction="https://ssp.imcce.fr/webservices/skybot3d#getAster" style="rpc"/>
      <input>
        <soap:header use="literal" part="clientID" message="tns:header"/>
        <soap:body use="encoded" namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="getComet">
      <soap:operation soapAction="https://ssp.imcce.fr/webservices/skybot3d#getComet" style="rpc"/>
      <input>
        <soap:header use="literal" part="clientID" message="tns:header"/>
        <soap:body use="encoded" namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="getPlanet">
      <soap:operation soapAction="https://ssp.imcce.fr/webservices/skybot3d#getPlanet" style="rpc"/>
      <input>
        <soap:header use="literal" part="clientID" message="tns:header"/>
        <soap:body use="encoded" namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="getSso">
      <soap:operation soapAction="https://ssp.imcce.fr/webservices/skybot3d#getSso" style="rpc"/>
      <input>
        <soap:header use="literal" part="clientID" message="tns:header"/>
        <soap:body use="encoded" namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="getAvailability">
      <soap:operation
        soapAction="https://ssp.imcce.fr/webservices/skybot3d#getAvailability" style="rpc" />
      <input>
        <soap:header use="literal" part="clientID" message="tns:header" />
        <soap:body use="encoded"
          namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded"
          namespace="https://ssp.imcce.fr/webservices/skybot3d"
          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
  </binding>

  <service name="Skybot3D">
    <port name="Skybot3DPort" binding="tns:Skybot3DBinding">
      <soap:address location="https://ssp.imcce.fr/webservices/skybot3d/skybot3d.php"/>
    </port>
  </service>
</definitions>
