SPML Object Model Overview
The object model consists of two major classes: the ProvisioningTarget which
represents a provisionable resource, and the ProvisioningSubscription which
holds the information related to the provisioning of the resource. The
following diagram illustrates the relationship between these two entities:

Instances of the ProvisioningSubscription class may
associated with at most a single target but allow the construction
of Composite structures. Each ProvisioningTarget has a unique identifier (within
a domain) and, potentially, a schema definition. The creation of a
ProvisioningSubscription will generally involve the generation of a set of parameters
complying with the target schema. These parameters are
maintaind by the subscription instance. ProvisioningSubscription instances may also maintain a set
of state changes that represent the lifecycle of the
subscription.
Schema
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:oasis:names:tc:SPML:0.1:provisioning:spml"
xmlns:spml="urn:oasis:names:tc:SPML:0.1:provisioning:spml"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<complexType name="ProvisioningMessage">
<simpleContent>
<extension base="string">
<attribute ref="xml:lang" use="optional"/>
</extension>
</simpleContent>
</complexType>
<complexType name="ProvisioningIdentifier">
<annotation>
<documentation>Generic identifier for all provisioning related objects.</documentation>
</annotation>
<sequence>
<any minOccurs="0" maxOccurs="unbounded">
<annotation>
<documentation>Any additional user data</documentation>
</annotation>
</any>
</sequence>
<attribute name="name" type="string" use="required"/>
</complexType>
<complexType name="ProvisioningTargetSchema">
<sequence>
<any namespace="##other" id="targetSchema" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>The schema for a target.</documentation>
</annotation>
</any>
</sequence>
<attribute name="element" type="QName" use="required"/>
</complexType>
<element name="ProvisioningTarget" type="spml:ProvisioningTargetType"/>
<complexType name="ProvisioningTargetType">
<annotation>
<documentation>A ProvisioningTarget represents a resource instance that may be provisioned</documentation>
</annotation>
<sequence>
<element name="identifier" type="spml:ProvisioningIdentifier" minOccurs="1" maxOccurs="1"/>
<element name="description" type="spml:ProvisioningMessage" minOccurs="0" maxOccurs="unbounded"/>
<element name="schema" type="spml:ProvisioningTargetSchema" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="optional"/>
</complexType>
<element name="ProvisioningTargets" type="spml:ProvisioningTargetsType"/>
<complexType name="ProvisioningTargetsType">
<annotation>
<documentation>A set of ProvisioningTarget instances.</documentation>
</annotation>
<sequence>
<element ref="spml:ProvisioningTarget" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="ProvisioningSubscriptionState" type="spml:ProvisioningSubscriptionStateType"/>
<simpleType name="ProvisioningSubscriptionStateType">
<restriction base="string">
<enumeration value="suspended"/>
<enumeration value="active"/>
<enumeration value="locked"/>
<enumeration value="terminated"/>
<enumeration value="pending"/>
<enumeration value="created"/>
<enumeration value="requested"/>
<enumeration value="unavailable"/>
</restriction>
</simpleType>
<element name="ProvisioningSubscriptionEvent" type="spml:ProvisioningSubscriptionEventType"/>
<complexType name="ProvisioningSubscriptionEventType">
<annotation>
<documentation>The lifecycle represents a potentially timed state change in a subscription.</documentation>
</annotation>
<sequence>
<element name="state" type="spml:ProvisioningSubscriptionStateType" minOccurs="1" maxOccurs="1"/>
<element name="date" type="dateTime" minOccurs="0" maxOccurs="1"/>
<element name="description" type="spml:ProvisioningMessage" minOccurs="0" maxOccurs="unbounded"/>
<element name="actor" type="spml:ProvisioningIdentifier" minOccurs="0" maxOccurs="1"/>
<element name="reason" type="spml:ProvisioningServiceStatusType" minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="ProvisioningSubscriptionEventsType">
<annotation>
<documentation>A set of ProvisioningSubscriptionEvent instances.</documentation>
</annotation>
<sequence>
<element ref="spml:ProvisioningSubscriptionEvent" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="ProvisioningServiceParameters">
<sequence>
<any namespace="##other" id="serviceParameters" minOccurs="1" maxOccurs="1">
<annotation>
<documentation>Container for generic parameters used for a subscription or return values.</documentation>
</annotation>
</any>
</sequence>
</complexType>
<element name="ProvisioningServiceSubscription" type="spml:ProvisioningServiceSubscriptionType"/>
<complexType name="ProvisioningServiceSubscriptionType">
<annotation>
<documentation>A subscription holds the state of a provisioned target or request.</documentation>
</annotation>
<sequence>
<element name="identifier" type="spml:ProvisioningIdentifier" minOccurs="1" maxOccurs="1"/>
<element name="target" type="spml:ProvisioningTargetType" minOccurs="0" maxOccurs="1"/>
<element name="state" type="spml:ProvisioningSubscriptionStateType" minOccurs="0" maxOccurs="1"/>
<element name="lifecycle" type="spml:ProvisioningSubscriptionEventsType" minOccurs="0" maxOccurs="1"/>
<element name="children" type="spml:ProvisioningServiceSubscriptionsType" minOccurs="0" maxOccurs="1"/>
<element name="parameters" type="spml:ProvisioningServiceParameters" minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
<element name="ProvisioningServiceSubscriptions" type="spml:ProvisioningServiceSubscriptionsType"/>
<complexType name="ProvisioningServiceSubscriptionsType">
<annotation>
<documentation>A set of ProvisioningServiceSubscription instances.</documentation>
</annotation>
<sequence>
<element ref="spml:ProvisioningServiceSubscription" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<simpleType name="ProvisioningServiceStatusCode">
<restriction base="string">
<enumeration value="success"/>
<enumeration value="inProcess"/>
<enumeration value="badRequest"/>
<enumeration value="busy"/>
<enumeration value="unavailable"/>
<enumeration value="notAuthorized"/>
<enumeration value="schemaViolation"/>
<enumeration value="unsupportedSchema"/>
<enumeration value="noSuchTarget"/>
<enumeration value="targetUnavailable"/>
<enumeration value="targetReportedError"/>
</restriction>
</simpleType>
<element name="ProvisioningServiceStatus" type="spml:ProvisioningServiceStatusType"/>
<complexType name="ProvisioningServiceStatusType">
<annotation>
<documentation>The status returned as part of a provisioning operation.</documentation>
</annotation>
<sequence>
<element name="code" type="spml:ProvisioningServiceStatusCode" minOccurs="1" maxOccurs="1"/>
<element name="message" type="spml:ProvisioningMessage" minOccurs="0" maxOccurs="unbounded"/>
<element name="data" type="spml:ProvisioningServiceParameters" minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
</schema>
|
|