<application xmlns="http://wadl.dev.java.net/2009/02" xmlns:xs="http://www.w3.org/2001/XMLSchema"><grammars><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="unqualified">
    <xs:element name="checkSessionResult" type="checkSessionResult"/>
    <xs:element name="checkSessionWithDataResult" type="checkSessionWithDataResult"/>
    <xs:element name="closeSessionResult" type="closeSessionResult"/>
    <xs:element name="getServiceStateResult" type="getServiceStateResult"/>
    <xs:element name="logoutAgentResult" type="logoutAgentResult"/>
    <xs:element name="sessionAcceptResult" type="sessionAcceptResult"/>
    <xs:element name="startSessionResult" type="startSessionResult"/>
    <xs:complexType name="startSessionResult">
        <xs:sequence>
            <xs:element minOccurs="0" name="result" type="commandResult"/>
            <xs:element minOccurs="0" name="sessionId" type="xs:string"/>
            <xs:element minOccurs="0" name="failReason" type="startSessionFailReasonCode"/>
            <xs:element minOccurs="0" name="failReasonMessage" type="xs:string"/>
            <xs:element minOccurs="0" name="contactId" type="xs:string"/>
            <xs:element minOccurs="0" name="contactValue" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="sessionAcceptResult">
        <xs:sequence>
            <xs:element minOccurs="0" name="result" type="commandResult"/>
            <xs:element minOccurs="0" name="sessionId" type="xs:string"/>
            <xs:element minOccurs="0" name="status" type="sessionStatus"/>
            <xs:element minOccurs="0" name="failReason" type="sessionStatusFailReasonCode"/>
            <xs:element minOccurs="0" name="failReasonMessage" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="getServiceStateResult">
        <xs:sequence>
            <xs:element minOccurs="0" name="result" type="commandResult"/>
            <xs:element name="state">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" minOccurs="0" name="entry">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element minOccurs="0" name="key" type="xs:string"/>
                                    <xs:element minOccurs="0" name="value" type="serviceState"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="channelId" type="xs:int"/>
            <xs:element minOccurs="0" name="failReason" type="getServiceStateResultFailReasonCode"/>
            <xs:element minOccurs="0" name="failReasonMessage" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="checkSessionResult">
        <xs:sequence>
            <xs:element minOccurs="0" name="result" type="commandResult"/>
            <xs:element minOccurs="0" name="sessionId" type="xs:string"/>
            <xs:element minOccurs="0" name="status" type="sessionStatus"/>
            <xs:element minOccurs="0" name="username" type="xs:string"/>
            <xs:element minOccurs="0" name="customMessage" type="xs:string"/>
            <xs:element minOccurs="0" name="failReason" type="checkSessionFailReasonCode"/>
            <xs:element minOccurs="0" name="failReasonMessage" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="checkSessionWithDataResult">
        <xs:complexContent>
            <xs:extension base="checkSessionResult">
                <xs:sequence>
                    <xs:element minOccurs="0" name="data" type="xs:string"/>
                    <xs:element minOccurs="0" name="sessionData" type="xs:string"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="logoutAgentResult">
        <xs:sequence>
            <xs:element minOccurs="0" name="result" type="commandResult"/>
            <xs:element minOccurs="0" name="failReason" type="logoutAgentResultFailReasonCode"/>
            <xs:element minOccurs="0" name="failReasonMessage" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="closeSessionResult">
        <xs:sequence>
            <xs:element minOccurs="0" name="result" type="commandResult"/>
            <xs:element minOccurs="0" name="sessionId" type="xs:string"/>
            <xs:element minOccurs="0" name="failReason" type="closeSessionFailReasonCode"/>
            <xs:element minOccurs="0" name="failReasonMessage" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="commandResult">
        <xs:restriction base="xs:string">
            <xs:enumeration value="SUCCESS"/>
            <xs:enumeration value="FAILED"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="startSessionFailReasonCode">
        <xs:restriction base="xs:string">
            <xs:enumeration value="GENERIC"/>
            <xs:enumeration value="INVALID_CHANNEL_ID"/>
            <xs:enumeration value="NO_LICENSE"/>
            <xs:enumeration value="UNKNOWN_CHANNEL_ID"/>
            <xs:enumeration value="UNKNOWN_SERVICE"/>
            <xs:enumeration value="CHANNEL_NOT_ENABLED"/>
            <xs:enumeration value="SERVICE_NOT_ENABLED"/>
            <xs:enumeration value="TIMEOUT_EXCEEDED"/>
            <xs:enumeration value="INVALID_RESPONSE"/>
            <xs:enumeration value="DATABASE_ERROR"/>
            <xs:enumeration value="REQUIRED_PARAMETERS"/>
            <xs:enumeration value="DUPLICATED_SESSION_ID"/>
            <xs:enumeration value="MC1002_UNKNOWN_CUSTOMER"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="sessionStatus">
        <xs:restriction base="xs:string">
            <xs:enumeration value="NEW"/>
            <xs:enumeration value="QUEUED"/>
            <xs:enumeration value="BOOKED"/>
            <xs:enumeration value="ASSIGNED"/>
            <xs:enumeration value="CLOSED"/>
            <xs:enumeration value="UNKNOW"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="sessionStatusFailReasonCode">
        <xs:restriction base="xs:string">
            <xs:enumeration value="SERVICE_NOT_ENABLED"/>
            <xs:enumeration value="TIMEOUT_EXCEEDED"/>
            <xs:enumeration value="INVALID_RESPONSE"/>
            <xs:enumeration value="INVALID_SESSION_ID"/>
            <xs:enumeration value="SESSION_CLOSED"/>
            <xs:enumeration value="REQUEST_REJECTED_BY_SERVICE"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="serviceState">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ACTIVE"/>
            <xs:enumeration value="OUT_OF_SERVICE"/>
            <xs:enumeration value="OVERTIME"/>
            <xs:enumeration value="UNKNOWN_SERVICE"/>
            <xs:enumeration value="CHANNEL_NOT_ENABLED"/>
            <xs:enumeration value="SERVICE_NOT_ENABLED"/>
            <xs:enumeration value="NO_LICENSE"/>
            <xs:enumeration value="FAILED"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="getServiceStateResultFailReasonCode">
        <xs:restriction base="xs:string">
            <xs:enumeration value="INVALID_CHANNEL_ID"/>
            <xs:enumeration value="INVALID_SERVICE_CODES"/>
            <xs:enumeration value="SERVICE_STATE_NOT_FOUND"/>
            <xs:enumeration value="SERVICE_NOT_ENABLED"/>
            <xs:enumeration value="TIMEOUT_EXCEEDED"/>
            <xs:enumeration value="INVALID_RESPONSE"/>
            <xs:enumeration value="REQUEST_REJECTED_BY_SERVICE"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="checkSessionFailReasonCode">
        <xs:restriction base="xs:string">
            <xs:enumeration value="INVALID_SESSION_ID"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="logoutAgentResultFailReasonCode">
        <xs:restriction base="xs:string">
            <xs:enumeration value="INVALID_CHANNEL_ID"/>
            <xs:enumeration value="INVALID_USERNAME"/>
            <xs:enumeration value="INVALID_USER_PROFILES"/>
            <xs:enumeration value="USER_NOT_LOGGED"/>
            <xs:enumeration value="LOGOUT_DATABASE_ERROR"/>
            <xs:enumeration value="LOGOUT_LICENSE_ERROR"/>
            <xs:enumeration value="LOGOUT_EXTENSION_ERROR"/>
            <xs:enumeration value="LOGOUT_USERNAME_ERROR"/>
            <xs:enumeration value="LOGOUT_ASTERISK_ERROR"/>
            <xs:enumeration value="LOGOUT_TWIN_ERROR"/>
            <xs:enumeration value="LOGOUT_UNKNOWN_ERROR"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="closeSessionFailReasonCode">
        <xs:restriction base="xs:string">
            <xs:enumeration value="GENERIC"/>
            <xs:enumeration value="UNKNOWN_SERVICE"/>
            <xs:enumeration value="SERVICE_NOT_ENABLED"/>
            <xs:enumeration value="TIMEOUT_EXCEEDED"/>
            <xs:enumeration value="INVALID_RESPONSE"/>
            <xs:enumeration value="DATABASE_ERROR"/>
            <xs:enumeration value="IS_PENDING"/>
            <xs:enumeration value="NOT_FOUND"/>
            <xs:enumeration value="INVALID_SESSION_ID"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
</grammars><resources base="http://172.16.93.7/mc/cxf/rest"><resource path="/"><resource path="json/checkSession"><method name="GET"><request><param name="sessionId" style="query" type="xs:string"/></request><response><representation mediaType="application/json"/></response></method></resource><resource path="json/checkSessionWithData"><method name="GET"><request><param name="sessionId" style="query" type="xs:string"/></request><response><representation mediaType="application/json"/></response></method></resource><resource path="json/closeSession"><method name="GET"><request><param name="sessionId" style="query" type="xs:string"/><param name="reason" style="query" type="xs:string"/></request><response><representation mediaType="application/json"/></response></method></resource><resource path="json/getServiceState"><method name="GET"><request><param name="channelId" style="query" type="xs:int"/><param name="serviceCodes" style="query" repeating="true" type="xs:string"/></request><response><representation mediaType="application/json"/></response></method></resource><resource path="json/logoutAgentFromChannel"><method name="GET"><request><param name="channelId" style="query" type="xs:int"/><param name="agentUsername" style="query" type="xs:string"/></request><response><representation mediaType="application/json"/></response></method></resource><resource path="json/sessionAccept"><method name="GET"><request><param name="sessionId" style="query" type="xs:string"/><param name="user" style="query" type="xs:string"/></request><response><representation mediaType="application/json"/></response></method></resource><resource path="json/setSessionData"><method name="PUT"><request><representation mediaType="application/json"/></request><response><representation mediaType="application/json"/></response></method></resource><resource path="json/startSession"><method name="GET"><request><param name="channelId" style="query" type="xs:int"/><param name="serviceId" style="query" type="xs:string"/><param name="sessionId" style="query" type="xs:string"/><param name="data" style="query" type="xs:string"/><param name="description" style="query" type="xs:string"/><param name="contactId" style="query" type="xs:string"/><param name="contactValue" style="query" type="xs:string"/></request><response><representation mediaType="application/json"/></response></method></resource></resource></resources></application>