<?xml version="1.0" encoding="UTF-8"?>

<!-- ************************************************************************* -->
<!-- Copyright (c) 2004-2005 Broadsoft, Inc.  All rights reserved.             -->
<!-- ************************************************************************* -->
<!-- O C I   X M L   S C H E M A  :  S E R V I C E   P A R T                   -->
<!--                                                                           -->
<!-- A U T H E N T I C A T I O N   S E R V I C E                               -->
<!--                                                                           -->
<!-- This file defines the XML Schema for the BroadSoft Application Server     -->
<!-- Open Client Interface (OCI).                                              -->
<!-- ************************************************************************* -->

<xs:schema xmlns:xs             = "http://www.w3.org/2001/XMLSchema"
           xmlns:core           = "C"
           xmlns                = ""
           attributeFormDefault = "qualified"
           elementFormDefault   = "qualified">

  <xs:import namespace      = "C"
             schemaLocation = "../OCISchemaBASE.xsd"/>

  <xs:include schemaLocation="../OCISchemaDataTypes.xsd"/>

  <!-- ********************************************************************************** -->
  <!-- A U T H E N T I C A T I O N   R E Q U E S T S   A N D   R E S P O N S E S          -->
  <!-- ********************************************************************************** -->
  <!--
  Requests and responses are listed here in alphabetical order.
  The non-primitive attributes inside the commands are defined in another
  section of the schema.

  Requests in this schema file:
    UserAuthenticationGetRequest
    UserAuthenticationModifyRequest
  -->

  <xs:complexType name="UserAuthenticationGetRequest">
    <xs:annotation>
      <xs:documentation>
        Get the user's authentication service information.
        The response is either a UserAuthenticationGetResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="userId" type="UserId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="UserAuthenticationGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the UserAuthenticationGetRequest.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="userName" type="SIPAuthenticationUserName" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="UserAuthenticationModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify the user's authentication service information.
        The response is either a SuccessResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="userId" type="UserId"/>
          <xs:element name="userName" type="SIPAuthenticationUserName" minOccurs="0"/>
          <xs:choice>
            <xs:element name="newPassword" type="Password" minOccurs="0"/>
            <xs:element name="password" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="old" type="Password"/>
                  <xs:element name="new" type="Password"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

</xs:schema>
