SPML API Model Overview

The API schema defines all of the messages that pass between entities.  These messages are used by the PSP WSDL.

Schema

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:oasis:names:tc:SPML:0.1:provisioning:spmlapi"
        xmlns:api="urn:oasis:names:tc:SPML:0.1:provisioning:spmlapi"
        xmlns:spml="urn:oasis:names:tc:SPML:0.1:provisioning:spml"
        xmlns:query="urn:oasis:names:tc:SPML:0.1:provisioning:spmlquery"
        xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

    <import namespace="urn:oasis:names:tc:SPML:0.1:provisioning:spml" schemaLocation="spml.xsd"/>
    <import namespace="urn:oasis:names:tc:SPML:0.1:provisioning:spmlquery" schemaLocation="query.xsd"/>

    <element name="GetAvailableTargetsRequest" type="api:GetAvailableTargetsRequestType"/>
    <complexType name="GetAvailableTargetsRequestType">
        <annotation>
            <documentation>Request to retrieve all available targets.</documentation>
        </annotation>
        <sequence>
        </sequence>
    </complexType>

    <element name="GetAvailableTargetsResponse" type="api:GetAvailableTargetsResponseType"/>
    <complexType name="GetAvailableTargetsResponseType">
        <annotation>
            <documentation>Response type for getAvailableTargets.</documentation>
        </annotation>
        <sequence>
            <element name="status" type="spml:ProvisioningServiceStatusType"/>
            <element name="targets" type="spml:ProvisioningTargetsType"/>
        </sequence>
    </complexType>

    <element name="GetStatusRequest" type="api:GetStatusRequestType"/>
    <complexType name="GetStatusRequestType">
        <annotation>
            <documentation>Request to get the status for a previous request.</documentation>
        </annotation>
        <sequence>
            <element name="requestId" type="string"/>
        </sequence>
    </complexType>

    <element name="GetStatusResponse" type="api:GetStatusResponseType"/>
    <complexType name="GetStatusResponseType">
        <annotation>
            <documentation>Response type for getStatusRequest.</documentation>
        </annotation>
        <sequence>
            <element name="status" type="spml:ProvisioningServiceStatusType"/>
        </sequence>
    </complexType>

    <element name="GetTargetRequest" type="api:GetTargetRequestType"/>
    <complexType name="GetTargetRequestType">
        <annotation>
            <documentation>Request a specific target.</documentation>
        </annotation>
        <sequence>
            <element name="identifier" type="spml:ProvisioningIdentifier"/>
        </sequence>
    </complexType>

    <element name="GetTargetResponse" type="api:GetTargetResponseType"/>
    <complexType name="GetTargetResponseType">
        <annotation>
            <documentation>Response from a getTarget message.</documentation>
        </annotation>
        <sequence>
            <element name="status" type="spml:ProvisioningServiceStatusType"/>
            <element name="target" type="spml:ProvisioningTargetType"/>
        </sequence>
    </complexType>

    <element name="GetSubscriptionRequest" type="api:GetSubscriptionRequestType"/>
    <complexType name="GetSubscriptionRequestType">
        <annotation>
            <documentation>Request a specific subscription.</documentation>
        </annotation>
        <sequence>
            <element name="identifier" type="spml:ProvisioningIdentifier"/>
        </sequence>
    </complexType>

    <element name="GetSubscriptionResponse" type="api:GetSubscriptionResponseType"/>
    <complexType name="GetSubscriptionResponseType">
        <annotation>
            <documentation>Response from a getSubscription message.</documentation>
        </annotation>
        <sequence>
            <element name="status" type="spml:ProvisioningServiceStatusType"/>
            <element name="subscription" type="spml:ProvisioningServiceSubscriptionType"/>
        </sequence>
    </complexType>

    <element name="CreateSubscriptionRequest" type="api:CreateSubscriptionRequestType"/>
    <complexType name="CreateSubscriptionRequestType">
        <annotation>
            <documentation>Create a subscription.</documentation>
        </annotation>
        <sequence>
            <element name="subscription" type="spml:ProvisioningServiceSubscriptionType"/>
            <element name="parent" type="spml:ProvisioningServiceSubscriptionType" minOccurs="0"/>
        </sequence>
    </complexType>

    <element name="CreateSubscriptionResponse" type="api:CreateSubscriptionResponseType"/>
    <complexType name="CreateSubscriptionResponseType">
        <annotation>
            <documentation>Response message for a create subscription request.</documentation>
        </annotation>
        <sequence>
            <element name="requestId" type="string" minOccurs="0"/>
            <element name="status" type="spml:ProvisioningServiceStatusType" minOccurs="1"/>
            <element name="subscription" type="spml:ProvisioningServiceSubscriptionType" minOccurs="0"/>
        </sequence>
    </complexType>

    <element name="ModifySubscriptionParametersRequest" type="api:ModifySubscriptionParametersRequestType"/>
    <complexType name="ModifySubscriptionParametersRequestType">
        <annotation>
            <documentation>Request to modify a subscription instance.</documentation>
        </annotation>
        <sequence>
            <element name="subscription" type="spml:ProvisioningIdentifier" minOccurs="1"/>
            <element name="modification" type="api:ParameterModificationType" minOccurs="1" maxOccurs="unbounded"/>
        </sequence>
    </complexType>

    <element name="ParameterModification" type="api:ParameterModificationType"/>
    <complexType name="ParameterModificationType">
        <annotation>
            <documentation>This class describes a particular modification to target data for a subscription.</documentation>
        </annotation>
        <sequence>
            <element name="identifier" type="query:ProvisioningQueryType" minOccurs="0" maxOccurs="1"/>
            <element name="parameters" type="spml:ProvisioningServiceParameters" minOccurs="0" maxOccurs="1"/>
        </sequence>
        <attribute name="operation" use="required">
            <simpleType>
                <restriction base="string">
                    <enumeration value="add"/>
                    <enumeration value="delete"/>
                    <enumeration value="replace"/>
                </restriction>
            </simpleType>
        </attribute>
    </complexType>

    <element name="ModifySubscriptionParametersResponse" type="api:ModifySubscriptionParametersResponseType"/>
    <complexType name="ModifySubscriptionParametersResponseType">
        <annotation>
            <documentation>Response message for a modify subscription paremeters request.</documentation>
        </annotation>
        <sequence>
            <element name="requestId" type="string" minOccurs="0"/>
            <element name="status" type="spml:ProvisioningServiceStatusType" minOccurs="1"/>
            <element name="subscription" type="spml:ProvisioningServiceSubscriptionType" minOccurs="0"/>
        </sequence>
    </complexType>

    <element name="ModifySubscriptionRequest" type="api:ModifySubscriptionRequestType"/>
    <complexType name="ModifySubscriptionRequestType">
        <annotation>
            <documentation>Modify a subscription.</documentation>
        </annotation>
        <sequence>
            <element name="subscription" type="spml:ProvisioningIdentifier"/>
            <element name="state" type="spml:ProvisioningSubscriptionStateType"/>
            <element name="parameters" type="spml:ProvisioningServiceParameters" minOccurs="0" maxOccurs="1"/>
        </sequence>
    </complexType>

    <element name="ModifySubscriptionResponse" type="api:ModifySubscriptionResponseType"/>
    <complexType name="ModifySubscriptionResponseType">
        <annotation>
            <documentation>Response message for a modify subscription request.</documentation>
        </annotation>
        <sequence>
            <element name="requestId" type="string" minOccurs="0"/>
            <element name="status" type="spml:ProvisioningServiceStatusType" minOccurs="1"/>
            <element name="subscription" type="spml:ProvisioningServiceSubscriptionType" minOccurs="0"/>
        </sequence>
    </complexType>

    <element name="DeleteSubscriptionRequest" type="api:DeleteSubscriptionRequestType"/>
    <complexType name="DeleteSubscriptionRequestType">
        <annotation>
            <documentation>Delete a subscription.</documentation>
        </annotation>
        <sequence>
            <element name="subscription" type="spml:ProvisioningIdentifier"/>
            <element name="parameters" type="spml:ProvisioningServiceParameters" minOccurs="0" maxOccurs="1"/>
        </sequence>
    </complexType>

    <element name="DeleteSubscriptionResponse" type="api:DeleteSubscriptionResponseType"/>
    <complexType name="DeleteSubscriptionResponseType">
        <annotation>
            <documentation>Response message for a delete subscription request.</documentation>
        </annotation>
        <sequence>
            <element name="requestId" type="string" minOccurs="0"/>
            <element name="status" type="spml:ProvisioningServiceStatusType" minOccurs="1"/>
            <element name="subscription" type="spml:ProvisioningServiceSubscriptionType" minOccurs="0"/>
        </sequence>
    </complexType>

    <element name="ProvisioningFault" type="api:ProvisioningFaultType"/>
    <complexType name="ProvisioningFaultType">
        <annotation>
            <documentation>Generic fault for all operations.</documentation>
        </annotation>
        <sequence>
            <element name="error" type="spml:ProvisioningServiceStatusType" minOccurs="1"/>
        </sequence>
    </complexType>

</schema>