tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Gloss.     Arch.     IMS     UICC    |    Misc.    |    search     info

RFC 7878

 
 
 

Session Peering Provisioning (SPP) Protocol over SOAP

Part 2 of 4, p. 22 to 43
Prev Section       Next Section

 


prevText      Top      ToC       Page 22 
7.2.5.  Batch Operation Structure

   An SPPP over SOAP Batch request XML structure allows the SPPF client
   to send any of the Add, Del, Accept, or Reject operations together in
   one single request.  This gives an SPPF client the flexibility to use
   one single request structure to perform more than operations (verbs).
   The batch request structure is wrapped within the <spppBatchRequest>
   element while an SPPF Batch response is wrapped within the
   <spppBatchResponse> element.  The following subsections describe the
   <spppBatchRequest> and <spppBatchResponse> elements.  Refer to
   Section 10 for an example of a Batch operation.

Top      Up      ToC       Page 23 
7.2.5.1.  Batch Request Structure

   An SPPP over SOAP Batch request definition is contained within the
   generic <spppBatchRequest> element.

       <element name="spppBatchRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
          <choice minOccurs="1" maxOccurs="unbounded">
           <element name="addObj" type="sppfb:BasicObjType"/>
           <element name="delObj" type="sppfb:ObjKeyType"/>
           <element name="acceptSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
           <element name="rejectSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
          </choice>
        </sequence>
       </complexType>
      </element>

   The data elements within the <sppBatchRequest> element are described
   as follows:

   o  clientTransId: Zero or one client-generated transaction ID that,
      within the context of the SPPF client, identifies this request.
      This value can be used at the discretion of the SPPF client to
      track, log, or correlate requests and their responses.  The SPPF
      server MUST echo back this value to the client in the
      corresponding response to the incoming request.  The SPPF server
      will not check this value for uniqueness.

   o  minorVer: Zero or one minor version identifier, as defined in
      Section 7.4.

   o  addObj: One or more elements of abstract type BasicObjType where
      each element identifies an object that needs to be added.

   o  delObj: One or more elements of abstract type ObjKeyType where
      each element identifies a key for the object that needs to be
      deleted .

   o  acceptSedGrpOffer: One or more elements of type SedGrpOfferKeyType
      where each element identifies a SED Group Offer that needs to be
      accepted.

Top      Up      ToC       Page 24 
   o  rejectSedGrpOffer: One or more elements of type SedGrpOfferKeyType
      where each element identifies a SED Group Offer that needs to be
      rejected.

   With respect to the handling of error conditions, conforming SPPP
   SOAP servers MUST stop processing elements in the request at the
   first error and roll back any elements that had already been
   processed for that Batch request ("stop and roll back").

7.2.5.2.  Batch Response

   An SPPP over SOAP batch response structure is contained within the
   generic <sppBatchResponse> element.  This response structure is used
   for a Batch request that contains many different types of SPPF
   operations.

     <element name="spppBatchResponse">
       <complexType>
         <sequence>
           <element name="clientTransId" type="sppfb:TransIdType"
            minOccurs="0"/>
           <element name="serverTransId" type="sppfb:TransIdType"/>
           <element name="overallResult" type="sppfs:ResultCodeType"/>
           <choice minOccurs="0" maxOccurs="unbounded">
              <element name="addResult"
              type="sppfs:ObjResultCodeType"/>
              <element name="delResult"
              type="sppfs:ObjKeyResultCodeType"/>
              <element name="acceptResult"
              type="sppfs:SedGrpOfferKeyResultCodeType"/>
              <element name="rejectResult"
              type="sppfs:SedGrpOfferKeyResultCodeType"/>
            </choice>
         </sequence>
       </complexType>
     </element>

   An <spppBatchResponse> contains the elements necessary for an SPPF
   client to precisely determine the overall result of various
   operations in the request, and if an error occurs, it provides
   information about the specific objects or keys in the request that
   caused the error.

Top      Up      ToC       Page 25 
   The data elements within the SPPP over SOAP Batch response are
   described as follows:

   o  clientTransId: Zero or one client transaction ID.  This value is
      simply an echo of the client transaction ID that the SPPF client
      passed into the SPPF update request.  When included in the
      request, the SPPF server MUST return it in the corresponding
      response message.

   o  serverTransId: Exactly one server transaction ID that identifies
      this request for tracking purposes.  This value MUST be unique for
      a given SPPF server.

   o  overallResult: Exactly one response code and message pair that
      explicitly identifies the result of the request.  See Section 7.3
      for further details.

   o  addResult: One or more elements of type ObjResultCodeType where
      each element identifies the result code, result message, and the
      specific object to which the result relates.

   o  delResult: One or more elements of type ObjKeyResultCodeType where
      each element identifies the result code, result message, and the
      specific object key to which the result relates.

   o  acceptResult: One or more elements of type
      SedGrpOfferKeyResultCodeType where each element identifies the
      result code, result message, and the specific SED Group Offer key
      to which the result relates.

   o  rejectResult: One or more elements of type
      SedGrpOfferKeyResultCodeType where each element identifies the
      result code, result message, and the specific SED Group Offer key
      to which the result relates.

7.2.6.  Get Operation Structure

   In order to query the details of an object from the Registry, an
   authorized entity can send the spppGetRequest to the Registry with a
   GetRqstType XML data structure containing one or more object keys
   that uniquely identify the object whose details are being queried.
   The following subsections describe the <spppGetRequest> and
   <spppGetResponse> elements.  Refer to Section 10 for an example of
   the SPPP over SOAP Get operation on each type of SPPF object.

Top      Up      ToC       Page 26 
7.2.6.1.  Get Request

   The request structure for an SPPP over SOAP Get operation is
   contained within the generic <spppGetRequest> element:

      <element name="spppGetRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="objKey"
         type="sppfb:ObjKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>

   The data elements within the <spppGetRequest> element are described
   as follows:

   o  minorVer: Zero or one minor version identifier, as defined in
      Section 7.4.

   o  objKey: One or more elements of abstract type ObjKeyType (as
      defined in [RFC7877]).  Each element contains attributes that
      uniquely identify the object that the client is requesting the
      server to query.  Refer to Section 7.1 of this document for a
      description of all concrete object key types, for various SPPF
      objects, which are eligible to be passed into this element.

7.2.6.2.  Get Response

   The SPPP over SOAP Get response is wrapped within the generic
   <spppGetResponse> element, as described in Section 7.2.8.

7.2.7.  Get SED Group Offers Operation Structure

   In addition to the ability to query the details of one or more SED
   Group Offers using a SED Group Offer key in the spppGetRequest, this
   operation also provides an additional, more flexible, structure to
   query for SED Group Offer objects.  This additional structure is
   contained within the <getSedGrpOffersRequest> element while the
   response is wrapped within the generic <spppGetResponse> element.
   The following subsections describe the <getSedGrpOffersRequest> and
   <spppGetResponse> elements.

Top      Up      ToC       Page 27 
7.2.7.1.  Get SED Group Offers Request

   Using the details passed into this structure, the server will attempt
   to find SED Group Offer objects that satisfy all the criteria passed
   into the request.  If no criteria are passed in, then the SPPF server
   will return the list of SED Group Offer objects that belong to the
   Registrant.  If there are no matching SED Group Offers found, then an
   empty result set will be returned.

       <element name="getSedGrpOffersRequest">
       <complexType>
        <sequence>
         <element name="minorVer" type="sppfb:MinorVerType"
         minOccurs="0"/>
        <element name="offeredBy" type="sppfb:OrgIdType"
        minOccurs="0" maxOccurs="unbounded"/>
        <element name="offeredTo" type="sppfb:OrgIdType"
        minOccurs="0" maxOccurs="unbounded"/>
        <element name="status" type="sppfb:SedGrpOfferStatusType"
         minOccurs="0"/>
        <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"
        minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>

   The data elements within the <getSedGrpOffersRequest> element are
   described as follows:

   o  minorVer: Zero or one minor version identifier, as defined in
      Section 7.4.

   o  offeredBy: Zero or more organization IDs.  Only offers that are
      offered to the organization IDs in this list should be included in
      the result set.  The result set is also subject to other query
      criteria in the request.

   o  offeredTo: Zero or more organization IDs.  Only offers that are
      offered by the organization IDs in this list should be included in
      the result set.  The result set is also subject to other query
      criteria in the request.

   o  status: The status of the offer, offered or accepted.  Only offers
      in the specified status should be included in the result set.  If
      this element is not present, then the status of the offer should
      not be considered in the query.  The result set is also subject to
      other query criteria in the request.

Top      Up      ToC       Page 28 
   o  sedGrpOfferKey: Zero or more SED Group Offer keys.  Only offers
      having one of these keys should be included in the result set.
      The result set is also subject to other query criteria in the
      request.

7.2.7.2.  Get SED Group Offers Response

   The spppGetResponse element is described in Section 7.2.8.

7.2.8.  Generic Query Response

   An SPPP over SOAP query response object is contained within the
   generic <spppGetResponse> element.

      <element name="spppGetResponse">
       <complexType>
        <sequence>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="resultObj"
         type="sppfb:BasicObjType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>

   An <spppGetResponse> contains the elements necessary for the SPPF
   client to precisely determine the overall result of the query and
   details of any SPPF objects that matched the criteria in the request.

   The data elements within the SPPP over SOAP query response are
   described as follows:

   o  overallResult: Exactly one response code and message pair that
      explicitly identifies the result of the request.  See Section 7.3
      for further details.

   o  resultObj: The set of zero or more objects that matched the query
      criteria.  If no objects matched the query criteria, then the
      result object(s) MUST be empty and the overallResult value MUST
      indicate success (if no matches are found for the query criteria,
      the response is considered a success).

Top      Up      ToC       Page 29 
7.2.9.  Get Server Details Operation Structure

   In order to query certain details of the SPPF server, such as the
   SPPF server's status and the major/minor version supported by the
   server, the Server Details operation structure SHOULD be used.  This
   structure is contained within the <spppServerStatusRequest> element
   whereas an SPPF server status response is wrapped within the
   <spppServerStatusResponse> element.  The following subsections
   describe the <spppServerStatusRequest> and <spppServerStatusResponse>
   elements.

7.2.9.1.  Get Server Details Request

   An SPPP over SOAP server details request structure is represented in
   the <spppServerStatusRequest> element as follows:

      <element name="spppServerStatusRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        </sequence>
       </complexType>
      </element>

   The data elements within the <spppServerStatusRequest> element are
   described as follows:

   o  minorVer: Zero or one minor version identifier, as defined in
      Section 7.4.

7.2.9.2.  Get Server Details Response

   An SPPP over SOAP server details response structure is contained
   within the generic <spppServerStatusResponse> element.

      <element name="spppServerStatusResponse">
       <complexType>
        <sequence>
         <element name="overallResult" type="sppfs:ResultCodeType"/>
         <element name="svcMenu" type="sppfb:SvcMenuType"/>
        </sequence>
       </complexType>
      </element>

Top      Up      ToC       Page 30 
   The data elements within the <spppServerStatusResponse> element are
   described as follows:

   o  overallResult: Exactly one response code and message pair that
      explicitly identifies the result of the request.  See Section 7.3
      for further details.

   o  svcMenu: Exactly one element of type SvcMenuType that, in turn,
      contains the elements to return the server status, the major and
      minor versions of SPPP over SOAP supported by the SPPF server
      (refer to Section 12 of [RFC7877] for the definition of
      SvcMenuType).

7.3.  Response Codes and Messages

   This section contains the listing of response codes and their
   corresponding human-readable text.  These response codes are in
   conformance with the response types defined in Section 5.3 of
   [RFC7877].

   The response code numbering scheme generally adheres to the theory
   formalized in Section 4.2.1 of [RFC5321]:

   o  The first digit of the response code can only be 1 or 2: 1 = a
      positive result, and 2 = a negative result.

   o  The second digit of the response code indicates the category: 0 =
      Protocol Syntax, 1 = Implementation Specific Business Rule, 2 =
      Security, and 3 = Server System.

   o  The third and fourth digits of the response code indicate the
      individual message event within the category defined by the first
      two digits.

   The response codes are also categorized as to whether they are
   overall response codes that may only be returned in the overallResult
   data element in SPPF responses or object-level response codes that
   may only be returned in the detailResult element of the SPPF
   responses.

Top      Up      ToC       Page 31 
   +--------+--------------------------+-------------------------------+
   | Result | Result Message           | Overall or Object Level       |
   | Code   |                          |                               |
   +--------+--------------------------+-------------------------------+
   | 1000   | Request succeeded        | Overall Response Code         |
   | 2000   | Request syntax invalid   | Overall Response Code         |
   | 2001   | Request too large        | Overall Response Code         |
   |        | MaxSupported:[Maximum    |                               |
   |        | requests supported]      |                               |
   | 2002   | Version not supported    | Overall Response Code         |
   | 2100   | Command invalid          | Overall Response Code         |
   | 2300   | System temporarily       | Overall Response Code         |
   |        | unavailable              |                               |
   | 2301   | Unexpected internal      | Overall Response Code         |
   |        | system or server error   |                               |
   | 2101   | Attribute value invalid  | Object-Level Response Code    |
   |        | AttrName:[AttributeName] |                               |
   |        | AttrVal:[AttributeValue] |                               |
   | 2102   | Object does not exist    | Object-Level Response Code    |
   |        | AttrName:[AttributeName] |                               |
   |        | AttrVal:[AttributeValue] |                               |
   | 2103   | Object status or         | Object-Level Response Code    |
   |        | ownership does not allow |                               |
   |        | for operation            |                               |
   |        | AttrName:[AttributeName] |                               |
   |        | AttrVal:[AttributeValue] |                               |
   +--------+--------------------------+-------------------------------+

           Table 1: Response Code Numbering Scheme and Messages

   The response message for response code 2001 is "parameterized" with
   the following parameter: "[Maximum requests supported]".  When the
   request is too large, this parameter MUST be used to indicate the
   maximum number of requests supported by the server in a single
   protocol operation.

   Response code 2000 SHOULD be used when the XML Schema validation of
   requests fails.

   Each of the object-level response messages are "parameterized" with
   the following parameters: "AttributeName" and "AttributeValue".

   For example, if an SPPF client sends a request to delete a
   Destination Group with a name "TestDG", and it does not already
   exist, then the error message returned should be: "Attribute value
   invalid.  AttrName:dgName AttrVal:TestDG".

Top      Up      ToC       Page 32 
   The use of these parameters MUST adhere to the rules defined in
   Section 5.3 of [RFC7877].

7.4.  Minor Version Identifier

   The minor version identifier element is defined as follows:

   o  minorVer: Zero or one minor version identifier, indicating the
      minor version of the SPPP over SOAP API that the client is
      attempting to use.  This is used in conjunction with the major
      version identifier in the XML Namespace to identify the version of
      SPPP over SOAP that the client is using.  If the element is not
      present, the server assumes that the client is using the latest
      minor version of SPPP over SOAP supported by the SPPF server for
      the given major version.  The versions of SPPP over SOAP supported
      by a given SPPF server can be retrieved by the client using this
      same spppServerStatusRequest without passing in the minorVer
      element.

8.  Protocol Operations

   Refer to Section 7 of [RFC7877] for a description of all SPPF
   operations and any necessary semantics that MUST be adhered to in
   order to conform with SPPF.

9.  SPPP over SOAP WSDL Definition

   The SPPP over SOAP WSDL and data types are defined below.  The WSDL
   design approach is commonly referred to as "Generic WSDL".  It is
   generic in the sense that there is not a specific WSDL operation
   defined for each object type that is supported by the SPPF protocol.
   There is a single WSDL structure for each type of SPPF operation.
   Each such WSDL structure contains exactly one input structure and one
   output structure that wraps any data elements that are part of the
   incoming request and the outgoing response, respectively.  The
   spppSOAPBinding in the WSDL defines the binding style as "document"
   and the encoding as "literal".  It is this combination of "wrapped"
   input and output data structures, "document" binding style, and
   "literal" encoding that characterize the Document Literal Wrapped
   style of WSDL specifications.

   Notes: The following WSDL has been formatted (e.g., tabs, spaces) to
   meet IETF requirements.  Deployments MUST replace
   "REPLACE_WITH_ACTUAL_URL" in the WSDL below with the URI of the SPPF
   server instance.

Top      Up      ToC       Page 33 
   <?xml version="1.0" encoding="UTF-8"?>
   <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:sppfb="urn:ietf:params:xml:ns:sppf:base:1"
   xmlns:sppfs="urn:ietf:params:xml:ns:sppf:soap:1"
   targetNamespace="urn:ietf:params:xml:ns:sppf:soap:1">
    <wsdl:types>
     <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:sppfs="urn:ietf:params:xml:ns:sppf:soap:1"
     targetNamespace="urn:ietf:params:xml:ns:sppf:soap:1">
      <annotation>
       <documentation>
        ---- Import base schema ----
       </documentation>
      </annotation>
      <import namespace="urn:ietf:params:xml:ns:sppf:base:1"
      schemaLocation="sppfbase.xsd"/>
      <annotation>
       <documentation>
        ---- Key type(s) extended
        from base schema. ----
       </documentation>
      </annotation>
      <complexType name="ObjKeyType">
       <complexContent>
        <extension base="sppfb:ObjKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <element name="name" type="sppfb:ObjNameType"/>
          <element name="type" type="sppfs:ObjKeyTypeEnum"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
    <simpleType name="ObjKeyTypeEnum">
      <restriction base="token">
        <enumeration value="SedGrp"/>
        <enumeration value="DestGrp"/>
        <enumeration value="SedRec"/>
        <enumeration value="EgrRte"/>
      </restriction>
    </simpleType>

      <complexType name="SedGrpOfferKeyType">
       <complexContent>
        <extension base="sppfb:SedGrpOfferKeyType">

Top      Up      ToC       Page 34 
         <sequence>
          <element name="sedGrpKey"
          type="sppfs:ObjKeyType"/>
          <element name="offeredTo"
          type="sppfb:OrgIdType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>

      <complexType name="PubIdKeyType">
       <complexContent>
        <extension base="sppfb:PubIdKeyType">
         <sequence>
          <element name="rant" type="sppfb:OrgIdType"/>
          <choice>
           <element name="number"
           type="sppfb:NumberType"/>
           <element name="range"
           type="sppfb:NumberRangeType"/>
          </choice>
         </sequence>
        </extension>
       </complexContent>
      </complexType>

      <annotation>
       <documentation>
        ---- Generic Request and
        Response Definitions ----
       </documentation>
      </annotation>
      <element name="spppAddRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="obj" type="sppfb:BasicObjType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppDelRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"

Top      Up      ToC       Page 35 
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="objKey"
         type="sppfb:ObjKeyType" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppAcceptRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppRejectRequest">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="sedGrpOfferKey"
         type="sppfs:SedGrpOfferKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppGetRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
         <element name="objKey"
         type="sppfb:ObjKeyType"
         maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppBatchRequest">
       <complexType>
        <sequence>

Top      Up      ToC       Page 36 
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
          <choice minOccurs="1" maxOccurs="unbounded">
           <element name="addObj" type="sppfb:BasicObjType"/>
           <element name="delObj" type="sppfb:ObjKeyType"/>
           <element name="acceptSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
           <element name="rejectSedGrpOffer"
           type="sppfs:SedGrpOfferKeyType"/>
          </choice>
        </sequence>
       </complexType>
      </element>
      <element name="spppServerStatusRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        </sequence>
       </complexType>
      </element>
      <element name="getSedGrpOffersRequest">
       <complexType>
        <sequence>
         <element name="minorVer"
         type="sppfb:MinorVerType" minOccurs="0"/>
        <element name="offeredBy"
        type="sppfb:OrgIdType" minOccurs="0"
        maxOccurs="unbounded"/>
        <element name="offeredTo" type="sppfb:OrgIdType"
        minOccurs="0" maxOccurs="unbounded"/>
        <element name="status"
        type="sppfb:SedGrpOfferStatusType" minOccurs="0"/>
        <element name="sedGrpOfferKey"
        type="sppfs:SedGrpOfferKeyType"
        minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppAddResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>

Top      Up      ToC       Page 37 
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
         type="sppfs:ObjResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppDelResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
         type="sppfs:ObjKeyResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppAcceptResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"
         type="sppfs:SedGrpOfferKeyResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppRejectResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="detailResult"

Top      Up      ToC       Page 38 
         type="sppfs:SedGrpOfferKeyResultCodeType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
       <element name="spppBatchResponse">
       <complexType>
        <sequence>
         <element name="clientTransId"
         type="sppfb:TransIdType" minOccurs="0"/>
         <element name="serverTransId"
         type="sppfb:TransIdType"/>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
          <choice minOccurs="0" maxOccurs="unbounded">
           <element name="addResult"
                    type="sppfs:ObjResultCodeType"/>
           <element name="delResult"
                    type="sppfs:ObjKeyResultCodeType"/>
           <element name="acceptResult"
                    type="sppfs:SedGrpOfferKeyResultCodeType"/>
           <element name="rejectResult"
                  type="sppfs:SedGrpOfferKeyResultCodeType"/>
          </choice>
        </sequence>
       </complexType>
      </element>
      <element name="spppGetResponse">
       <complexType>
        <sequence>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="resultObj"
         type="sppfb:BasicObjType"
         minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
       </complexType>
      </element>
      <element name="spppServerStatusResponse">
       <complexType>
        <sequence>
         <element name="overallResult"
         type="sppfs:ResultCodeType"/>
         <element name="svcMenu"
         type="sppfb:SvcMenuType"/>
        </sequence>
       </complexType>
      </element>

Top      Up      ToC       Page 39 
      <annotation>
       <documentation>
        ---- Operation Result Type
        Definitions ----
       </documentation>
      </annotation>
      <complexType name="ResultCodeType">
       <sequence>
        <element name="code" type="sppfs:ResultCodeValType"/>
        <element name="msg" type="sppfs:MsgType"/>
       </sequence>
      </complexType>

      <simpleType name="ResultCodeValType">
        <restriction base="unsignedShort">
          <enumeration value="1000"/>
          <enumeration value="2000"/>
          <enumeration value="2001"/>
          <enumeration value="2002"/>
          <enumeration value="2100"/>
          <enumeration value="2101"/>
          <enumeration value="2102"/>
          <enumeration value="2103"/>
          <enumeration value="2300"/>
          <enumeration value="2301"/>
        </restriction>
      </simpleType>

      <simpleType name="MsgType">
        <restriction base="token">
         <minLength value="3"/>
         <maxLength value="255"/>
        </restriction>
       </simpleType>

      <complexType name="ObjResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
          <element name="obj" type="sppfb:BasicObjType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
      <complexType name="ObjKeyResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>

Top      Up      ToC       Page 40 
          <element name="objKey" type="sppfb:ObjKeyType"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
         <complexType name="SedGrpOfferKeyResultCodeType">
       <complexContent>
        <extension base="sppfs:ResultCodeType">
         <sequence>
          <element name="sedGrpOfferKey"
          type="sppfs:SedGrpOfferKeyType"/>
         </sequence>
        </extension>
       </complexContent>
       </complexType>
     </xsd:schema>
    </wsdl:types>
    <wsdl:message name="spppAddRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppAddRequest"/>
    </wsdl:message>
    <wsdl:message name="spppDelRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppDelRequest"/>
    </wsdl:message>
    <wsdl:message name="spppAcceptRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppAcceptRequest"/>
    </wsdl:message>
    <wsdl:message name="spppRejectRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppRejectRequest"/>
    </wsdl:message>
    <wsdl:message name="spppBatchRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppBatchRequest"/>
    </wsdl:message>
    <wsdl:message name="spppGetRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppGetRequest"/>
    </wsdl:message>
    <wsdl:message name="spppGetSedGrpOffersRequestMsg">
     <wsdl:part name="rqst" element="sppfs:getSedGrpOffersRequest"/>
    </wsdl:message>
    <wsdl:message name="spppAddResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppAddResponse"/>
    </wsdl:message>
     <wsdl:message name="spppDelResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppDelResponse"/>
    </wsdl:message>
     <wsdl:message name="spppAcceptResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppAcceptResponse"/>
    </wsdl:message>
     <wsdl:message name="spppRejectResponseMsg">

Top      Up      ToC       Page 41 
     <wsdl:part name="rspns" element="sppfs:spppRejectResponse"/>
    </wsdl:message>
     <wsdl:message name="spppBatchResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppBatchResponse"/>
    </wsdl:message>
    <wsdl:message name="spppGetResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppGetResponse"/>
    </wsdl:message>
    <wsdl:message name="spppServerStatusRequestMsg">
     <wsdl:part name="rqst" element="sppfs:spppServerStatusRequest"/>
    </wsdl:message>
    <wsdl:message name="spppServerStatusResponseMsg">
     <wsdl:part name="rspns" element="sppfs:spppServerStatusResponse"/>
    </wsdl:message>
    <wsdl:portType name="spppPortType">
     <wsdl:operation name="submitAddRqst">
      <wsdl:input message="sppfs:spppAddRequestMsg"/>
      <wsdl:output message="sppfs:spppAddResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitDelRqst">
      <wsdl:input message="sppfs:spppDelRequestMsg"/>
      <wsdl:output message="sppfs:spppDelResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitAcceptRqst">
      <wsdl:input message="sppfs:spppAcceptRequestMsg"/>
      <wsdl:output message="sppfs:spppAcceptResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitRejectRqst">
      <wsdl:input message="sppfs:spppRejectRequestMsg"/>
      <wsdl:output message="sppfs:spppRejectResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitBatchRqst">
      <wsdl:input message="sppfs:spppBatchRequestMsg"/>
      <wsdl:output message="sppfs:spppBatchResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitGetRqst">
      <wsdl:input message="sppfs:spppGetRequestMsg"/>
      <wsdl:output message="sppfs:spppGetResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitGetSedGrpOffersRqst">
      <wsdl:input message="sppfs:spppGetSedGrpOffersRequestMsg"/>
      <wsdl:output message="sppfs:spppGetResponseMsg"/>
     </wsdl:operation>
     <wsdl:operation name="submitServerStatusRqst">
      <wsdl:input message="sppfs:spppServerStatusRequestMsg"/>
      <wsdl:output message="sppfs:spppServerStatusResponseMsg"/>
     </wsdl:operation>
    </wsdl:portType>

Top      Up      ToC       Page 42 
    <wsdl:binding name="spppSoapBinding" type="sppfs:spppPortType">
     <soap:binding style="document"
     transport="http://schemas.xmlsoap.org/soap/http"/>
     <wsdl:operation name="submitAddRqst">
      <soap:operation soapAction="submitAddRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitDelRqst">
      <soap:operation soapAction="submitDelRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitAcceptRqst">
      <soap:operation soapAction="submitAcceptRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitRejectRqst">
      <soap:operation soapAction="submitRejectRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitBatchRqst">
      <soap:operation soapAction="submitBatchRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>

Top      Up      ToC       Page 43 
     <wsdl:operation name="submitGetRqst">
      <soap:operation soapAction="submitGetRqst" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitGetSedGrpOffersRqst">
      <soap:operation soapAction="submitGetSedGrpOffersRqst"
      style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
     <wsdl:operation name="submitServerStatusRqst">
      <soap:operation soapAction="submitServerStatusRqst"
      style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
      </wsdl:output>
     </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="spppService">
     <wsdl:port name="spppPort" binding="sppfs:spppSoapBinding">
      <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
     </wsdl:port>
    </wsdl:service>
   </wsdl:definitions>

                              Figure 2: WSDL


Next Section