blob: 95c8ff9ef3960318948b29b4f8a2b0717b0589a3 [file] [log] [blame]
<!-- Used by AAF (ATT inc 2013) -->
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:aaf="urn:aaf:v2_0"
targetNamespace="urn:aaf:v2_0"
elementFormDefault="qualified">
<!--
Note: jan 22, 2015. Deprecating the "force" element in the "Request" Structure. Do that
with Query Params.
Eliminate in 3.0
-->
<!--
Errors
Note: This Error Structure has been made to conform to the AT&T TSS Policies
-->
<xs:element name="error">
<xs:complexType>
<xs:sequence>
<!--
Unique message identifier of the format ‘ABCnnnn’ where ‘ABC’ is
either ‘SVC’ for Service Exceptions or ‘POL’ for Policy Exception.
Exception numbers may be in the range of 0001 to 9999 where :
* 0001 to 0199 are reserved for common exception messages
* 0200 to 0999 are reserved for Parlay Web Services specification use
* 1000-9999 are available for exceptions
-->
<xs:element name="messageId" type="xs:string" minOccurs="1" maxOccurs="1"/>
<!--
Message text, with replacement
variables marked with %n, where n is
an index into the list of <variables>
elements, starting at 1
-->
<xs:element name="text" type="xs:string" minOccurs="1" maxOccurs="1"/>
<!--
List of zero or more strings that
represent the contents of the variables
used by the message text. -->
<xs:element name="variables" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
Requests
-->
<xs:complexType name="Request">
<xs:sequence>
<xs:element name="start" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
<xs:element name="end" type="xs:date" minOccurs="1" maxOccurs="1"/>
<!-- Deprecated. Use Query Command
<xs:element name="force" type="xs:string" minOccurs="1" maxOccurs="1" default="false"/>
-->
</xs:sequence>
</xs:complexType>
<!--
Permissions
-->
<xs:complexType name = "pkey">
<xs:sequence>
<xs:element name="type" type="xs:string"/>
<xs:element name="instance" type="xs:string"/>
<xs:element name="action" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="permKey">
<xs:complexType >
<xs:complexContent>
<xs:extension base="aaf:pkey" />
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="perm">
<xs:complexType >
<xs:complexContent>
<xs:extension base="aaf:pkey">
<xs:sequence>
<xs:element name="roles" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="perms">
<xs:complexType>
<xs:sequence>
<xs:element ref="aaf:perm" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="permRequest">
<xs:complexType>
<xs:complexContent>
<xs:extension base="aaf:Request">
<xs:sequence>
<xs:element name="type" type="xs:string"/>
<xs:element name="instance" type="xs:string"/>
<xs:element name="action" type="xs:string"/>
<!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--
Roles
-->
<xs:complexType name="rkey">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="roleKey">
<xs:complexType >
<xs:complexContent>
<xs:extension base="aaf:rkey" />
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="role">
<xs:complexType>
<xs:complexContent>
<xs:extension base="aaf:rkey">
<xs:sequence>
<xs:element name="perms" type="aaf:pkey" minOccurs="0" maxOccurs="unbounded"/>
<!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="roles">
<xs:complexType>
<xs:sequence>
<xs:element ref="aaf:role" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="roleRequest">
<xs:complexType>
<xs:complexContent>
<xs:extension base="aaf:Request">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
<!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="userRoleRequest">
<xs:complexType>
<xs:complexContent>
<xs:extension base="aaf:Request">
<xs:sequence>
<xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="role" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="rolePermRequest">
<xs:complexType>
<xs:complexContent>
<xs:extension base="aaf:Request">
<xs:sequence>
<xs:element name="perm" type="aaf:pkey" minOccurs="1" maxOccurs="1"/>
<xs:element name="role" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="nsRequest">
<xs:complexType>
<xs:complexContent>
<xs:extension base="aaf:Request">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="admin" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="responsible" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="scope" type="xs:int" minOccurs="0" maxOccurs="1"/>
<!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name = "nss">
<xs:complexType>
<xs:sequence>
<xs:element name = "ns" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name = "name" type = "xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name = "responsible" type = "xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name = "admin" type = "xs:string" minOccurs="0" maxOccurs="unbounded"/>
<!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
<xs:element name = "description" type = "xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
Users
-->
<xs:element name="users">
<xs:complexType>
<xs:sequence>
<xs:element name="user" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="expires" type="xs:date" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
Credentials
-->
<xs:element name="credRequest">
<xs:complexType>
<xs:complexContent>
<xs:extension base="aaf:Request">
<xs:sequence>
<xs:element name="id" type="xs:string"/>
<xs:element name="type" type="xs:int" minOccurs="0" maxOccurs="1"/>
<xs:choice >
<xs:element name="password" type="xs:string" />
<xs:element name="entry" type="xs:string" />
</xs:choice>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--
History
-->
<xs:element name="history">
<xs:complexType>
<xs:sequence>
<xs:element name="item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="YYYYMM" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="timestamp" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
<xs:element name="subject" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="target" type = "xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="action" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="memo" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
Approvals
-->
<xs:complexType name="approval">
<xs:sequence>
<!-- Note, id is set by system -->
<xs:element name="id" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ticket" type="xs:string"/>
<xs:element name="user" type="xs:string"/>
<xs:element name="approver" type="xs:string"/>
<xs:element name="type" type="xs:string"/>
<xs:element name="memo" type="xs:string"/>
<xs:element name="updated" type="xs:dateTime"/>
<xs:element name="status">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="approve"/>
<xs:enumeration value="reject"/>
<xs:enumeration value="pending"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="operation">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="C"/>
<xs:enumeration value="U"/>
<xs:enumeration value="D"/>
<xs:enumeration value="G"/>
<xs:enumeration value="UG"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="approvals">
<xs:complexType>
<xs:sequence>
<xs:element name="approvals" type="aaf:approval" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
Delegates
-->
<xs:complexType name="delg">
<xs:sequence>
<xs:element name="user" type="xs:string"/>
<xs:element name="delegate" type="xs:string"/>
<xs:element name="expires" type="xs:date"/>
</xs:sequence>
</xs:complexType>
<xs:element name="delgRequest">
<xs:complexType>
<xs:complexContent>
<xs:extension base="aaf:Request">
<xs:sequence>
<xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="delegate" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="delgs">
<xs:complexType>
<xs:sequence>
<xs:element name="delgs" type="aaf:delg" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- jg 3/11/2015 New for 2.0.8 -->
<xs:element name="api">
<xs:complexType>
<xs:sequence>
<xs:element name="route" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="meth" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="path" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="desc" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="comments" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="contentType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="expected" type="xs:int" minOccurs="1" maxOccurs="1"/>
<xs:element name="explicitErr" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>