<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified"
    elementFormDefault="qualified"
    targetNamespace="http://ws.easylink.com/UserCreate/2013/06"
    xmlns:xoauc="http://ws.easylink.com/UserCreate/2013/06" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <!-- =========================
	<xs:include schemaLocation="AcctAddressType.xsd"/>
	<xs:include schemaLocation="AcctContactType.xsd"/>
	<xs:include schemaLocation="AcctServiceStatusType.xsd"/>
	<xs:include schemaLocation="DestinationType.xsd"/>
	<xs:include schemaLocation="EncodableStringType.xsd"/>
	<xs:include schemaLocation="ExtensionType.xsd"/>
	<xs:include schemaLocation="F2MServiceType.xsd"/>
	<xs:include schemaLocation="ParentEntityType.xsd"/>
	<xs:include schemaLocation="ProfileItemType.xsd"/>
	<xs:include schemaLocation="ReportAddressType.xsd"/>
	<xs:include schemaLocation="SecurityInfoType.xsd"/>
	<xs:include schemaLocation="StatusType.xsd"/>
	========================= -->
    <xs:element name="UserCreateRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" name="SubmitId" type="xs:string"/>
                <xs:element minOccurs="0" name="UserId" type="xs:string"/>
                <xs:element minOccurs="0" name="ParentEntityId" type="xoauc:ParentIdentityType"/>
                <xs:element minOccurs="0" name="Password" type="xs:string"/>
                <xs:element minOccurs="0" name="SecurityInfo" type="xoauc:SecurityInfoType"/>
                <xs:element name="UserName" type="xoauc:EncodableStringType"/>
                <xs:element minOccurs="0" name="UserAccountStatus" type="xoauc:AcctServiceStatusType"/>
                <xs:element name="UserAddress" type="xoauc:AcctAddressType"/>
                <xs:element name="UserContact" type="xoauc:AcctContactType"/>
                <xs:element minOccurs="0" name="TechnicalAddress" type="xoauc:AcctAddressType"/>
                <xs:element minOccurs="0" name="TechnicalContact" type="xoauc:AcctContactType"/>
                <xs:element minOccurs="0" name="ShippingAddress" type="xoauc:AcctAddressType"/>
                <xs:element minOccurs="0" name="Mbox" type="xs:boolean"/>
                <xs:element name="ReportAddress" type="xoauc:DestinationType"/>
                <xs:element minOccurs="0" name="Fax2MailData">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element maxOccurs="2" name="Service" type="xoauc:F2MServiceType"/>
                            <xs:element minOccurs="0" name="Admin" type="xs:boolean"/>
                            <xs:element minOccurs="0"
                                name="AdminEntityId" type="xs:long"/>
                            <xs:element minOccurs="0" name="M2FAlias" type="xs:string"/>
                            <xs:choice minOccurs="0">
                                <xs:element name="DNIS" type="xs:string"/>
                                <xs:element name="DNISSelection">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element
                                    name="CountryCode" type="xs:string"/>
                                    <xs:element minOccurs="0"
                                    name="AreaCode" type="xs:string"/>
                                    <xs:element minOccurs="0"
                                    name="ExchangeCode" type="xs:string"/>
                                    <xs:element minOccurs="0"
                                    name="DNISGroup" type="xs:long"/>
                                    <xs:element minOccurs="0"
                                    name="AllowDNISAddition" type="xs:boolean"/>
                                    </xs:sequence>
                                    </xs:complexType>
                                </xs:element>
                            </xs:choice>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element minOccurs="0" name="DefaultProfile" type="xs:int"/>
                <xs:element minOccurs="0" name="ProfileInfo">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element maxOccurs="unbounded"
                                name="ProfileItem" type="xoauc:ProfileItemType"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element minOccurs="0" name="UserExtensions" type="xoauc:ExtensionType"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="UserCreateResult">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Status" type="xoauc:StatusType"/>
                <xs:element minOccurs="0" name="SubmitId" type="xs:string"/>
                <xs:element minOccurs="0" name="UserId" type="xs:string"/>
                <xs:element minOccurs="0" name="UserAccountNumber" type="xs:long"/>
                <xs:element minOccurs="0" name="Password" type="xs:string"/>
                <xs:element minOccurs="0" name="DNIS" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <!-- ================
	<xs:include schemaLocation="EncodableStringType.xsd"/>
	================ -->
    <xs:complexType name="AcctAddressType">
        <xs:sequence>
            <xs:element name="AddressStreet1" type="xoauc:EncodableStringType"/>
            <xs:element minOccurs="0" name="AddressStreet2" type="xoauc:EncodableStringType"/>
            <xs:element minOccurs="0" name="AddressStreet3" type="xoauc:EncodableStringType"/>
            <xs:element name="AddressCity" type="xoauc:EncodableStringType"/>
            <xs:element name="AddressState" type="xoauc:EncodableStringType"/>
            <xs:element name="AddressZIP" type="xoauc:EncodableStringType"/>
            <xs:element name="AddressCountry" type="xoauc:EncodableStringType"/>
        </xs:sequence>
    </xs:complexType>
    <!-- ================
	<xs:include schemaLocation="EncodableStringType.xsd"/>
	================ -->
    <xs:complexType name="AcctContactType">
        <xs:sequence>
            <xs:element name="ContactName" type="xoauc:EncodableStringType"/>
            <xs:element minOccurs="0" name="ContactPhone" type="xoauc:EncodableStringType"/>
            <xs:element minOccurs="0" name="ContactEmail" type="xoauc:EncodableStringType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="AcctServiceStatusType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="active"/>
            <xs:enumeration value="cancelled"/>
            <xs:enumeration value="suspended"/>
            <xs:enumeration value="inactive"/>
            <xs:enumeration value="deleted"/>
            <xs:enumeration value="pending"/>
            <xs:enumeration value="hold"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- ================
	<xs:include schemaLocation="ReportAddressType.xsd"/>
	================ -->
    <xs:complexType name="DestinationType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="type" type="xoauc:ReportAddressType" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="EncodableStringType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="b64charset" type="xs:string" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <!-- ===============================
	=============================== -->
    <xs:complexType name="SegmentType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="Property">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attribute name="name" type="xs:string" use="required"/>
                            <xs:attribute name="b64charset"
                                type="xs:string" use="optional"/>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="ExtensionType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="Segment" type="xoauc:SegmentType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="F2MServiceType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Fax2Mail"/>
            <xs:enumeration value="Mail2Fax"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="ParentIdentityType">
        <xs:sequence>
            <xs:element minOccurs="0" name="CustomerNumber" type="xs:unsignedInt"/>
            <xs:element minOccurs="0" name="GroupEntityId" type="xs:unsignedInt"/>
        </xs:sequence>
    </xs:complexType>
    <!-- ================
	<xs:include schemaLocation="EncodableStringType.xsd"/>
	================ -->
    <xs:complexType name="ProfileItemType">
        <xs:sequence>
            <xs:element name="ProfileItemName" type="xs:string"/>
            <xs:element name="ProfileItemValue" type="xoauc:EncodableStringType"/>
        </xs:sequence>
    </xs:complexType>
    <!-- address type enum for report fields-->
    <xs:simpleType name="ReportAddressType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="none"/>
            <xs:enumeration value="fax"/>
            <xs:enumeration value="internet"/>
            <xs:enumeration value="mbox"/>
            <xs:enumeration value="list"/>
            <xs:enumeration value="URL"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- ================
	<xs:include schemaLocation="EncodableStringType.xsd"/>
	================ -->
    <xs:complexType name="SecurityInfoType">
        <xs:sequence>
            <xs:element minOccurs="0" name="NumericPassword" type="xs:integer"/>
            <xs:element minOccurs="0" name="SecureTo" type="xs:string"/>
            <xs:element minOccurs="0" name="SecurityType" type="xs:string"/>
            <xs:element minOccurs="0" name="PasswordChallenge" type="xoauc:EncodableStringType"/>
            <xs:element minOccurs="0" name="PasswordResponse" type="xoauc:EncodableStringType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="StatusType">
        <xs:sequence>
            <xs:element name="StatusCode" type="xs:integer">
                <xs:annotation>
                    <xs:documentation>0 = success, non-zero = error state TBD</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="StatusMessage" type="xs:string">
                <xs:annotation>
                    <xs:documentation>text description of StatusCode</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="ErrorList">
                <xs:annotation>
                    <xs:documentation>Container for Errors</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="Error">
                            <xs:annotation>
                                <xs:documentation>An Error</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="ErrorCode" type="xs:integer">
                                    <xs:annotation>
                                    <xs:documentation>non-zero code</xs:documentation>
                                    </xs:annotation>
                                    </xs:element>
                                    <xs:element name="ErrorMessage" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="SubmissionTime" type="xs:dateTime">
                <xs:annotation>
                    <xs:documentation>The time the Request was received by the system</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="CompletionTime" type="xs:dateTime">
                <xs:annotation>
                    <xs:documentation>the time the Request was completed processing</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
