<?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  :  G R O U P   P A R T                       -->
<!--                                                                           -->
<!-- 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"/>
  <xs:include schemaLocation="OCISchemaSearchCriteria.xsd"/>

  <!-- ***************************************************************************** -->
  <!-- G R O U P   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:
    GroupAccessDeviceAddRequest14
    GroupAccessDeviceCustomTagAddRequest
    GroupAccessDeviceCustomTagDeleteListRequest
    GroupAccessDeviceCustomTagGetListRequest
    GroupAccessDeviceCustomTagModifyRequest
    GroupAccessDeviceDeleteRequest
    GroupAccessDeviceFileGetListRequest14sp8
    GroupAccessDeviceFileGetRequest14sp8
    GroupAccessDeviceFileModifyRequest14sp8
    GroupAccessDeviceGetAvailableDetailListRequest14
    GroupAccessDeviceGetEnhancedConfigurationTypeListRequest
    GroupAccessDeviceGetEnhancedConfigurationTypeRequest14
    GroupAccessDeviceGetListRequest
    GroupAccessDeviceGetRequest16
    GroupAccessDeviceGetUserListRequest
    GroupAccessDeviceModifyRequest14
    GroupAccessDeviceModifyUserRequest
    GroupAddRequest
    GroupAdminAddRequest
    GroupAdminDeleteRequest
    GroupAdminGetListRequest
    GroupAdminGetPolicyRequest14sp1
    GroupAdminGetRequest
    GroupAdminModifyPolicyRequest
    GroupAdminModifyRequest
    GroupCallProcessingGetPolicyRequest16
    GroupCallProcessingModifyPolicyRequest15sp2
    GroupCommonPhoneListAddListRequest
    GroupCommonPhoneListDeleteListRequest
    GroupCommonPhoneListGetListRequest
    GroupCommonPhoneListModifyRequest
    GroupCommunicationBarringAuthorizationCodeAddListRequest
    GroupCommunicationBarringAuthorizationCodeDeleteListRequest
    GroupCommunicationBarringAuthorizationCodeGetListRequest
    GroupCPEConfigRebuildConfigFileRequest
    GroupCPEConfigRebuildDeviceConfigFileRequest
    GroupCPEConfigReorderDeviceLinePortsRequest
    GroupCPEConfigResetDeviceRequest
    GroupCPEConfigResetDeviceTypeRequest
    GroupCPEConfigSetConfigFileRequest
    GroupCustomContactDirectoryAddRequest
    GroupCustomContactDirectoryDeleteRequest
    GroupCustomContactDirectoryGetAvailableUserListRequest
    GroupCustomContactDirectoryGetListRequest
    GroupCustomContactDirectoryGetRequest
    GroupCustomContactDirectoryModifyRequest
    GroupDeleteRequest
    GroupDepartmentAddRequest
    GroupDepartmentAdminAddRequest
    GroupDepartmentAdminDeleteRequest
    GroupDepartmentAdminGetListRequest
    GroupDepartmentAdminGetRequest
    GroupDepartmentAdminModifyRequest
    GroupDepartmentDeleteRequest
    GroupDepartmentGetAvailableParentListRequest
    GroupDepartmentGetListRequest
    GroupDepartmentModifyRequest
    GroupDeviceTypeFileGetListRequest14sp8
    GroupDeviceTypeFileGetRequest14sp8
    GroupDeviceTypeFileModifyRequest14sp8
    GroupDialPlanPolicyGetRequest
    GroupDialPlanPolicyModifyRequest
    GroupDialPlanPolicyGetAccessCodeListRequest
    GroupDialPlanPolicyGetAccessCodeRequest
    GroupDialPlanPolicyAddAccessCodeRequest
    GroupDialPlanPolicyDeleteAccessCodeRequest
    GroupDialPlanPolicyModifyAccessCodeRequest
    GroupDigitCollectionGetRequest13mp4
    GroupDigitCollectionModifyRequest
    GroupDnActivateListRequest
    GroupDnAssignListRequest
    GroupDnDeactivateListRequest
    GroupDnGetActivationListRequest
    GroupDnGetAssignmentListRequest
    GroupDnGetAvailableListRequest
    GroupDnGetDetailedAvailableListRequest
    GroupDnGetListRequest
    GroupDnGetSummaryListRequest
    GroupDnListAssignDepartmentRequest
    GroupDnUnassignListRequest
    GroupDomainAssignListRequest
    GroupDomainGetAssignedListRequest
    GroupDomainGetAssignedUserListRequest
    GroupDomainUnassignListRequest
    GroupExistingUsersAssignUserServiceListRequest
    GroupExistingUsersUnassignUserServiceListRequest
    GroupExtensionLengthGetRequest
    GroupExtensionLengthModifyRequest
    GroupFeatureAccessCodeGetRequest
    GroupFeatureAccessCodeModifyRequest
    GroupFileRepositoryDeviceUserAddRequest
    GroupFileRepositoryDeviceUserDeleteRequest
    GroupFileRepositoryDeviceUserGetListRequest
    GroupFileRepositoryDeviceUserModifyRequest
    GroupGetDefaultRequest
    GroupGetListInServiceProviderRequest
    GroupGetListInSystemRequest
    GroupGetRequest14sp7
    GroupGetUserServiceAssignedUserListRequest
    GroupHolidayScheduleAddRequest
    GroupHolidayScheduleDeleteRequest
    GroupHolidayScheduleGetListRequest
    GroupHolidayScheduleGetRequest
    GroupHolidayScheduleModifyRequest
    GroupModifyRequest
    GroupNetworkClassOfServiceAssignListRequest
    GroupNetworkClassOfServiceAssignToAllUsersRequest
    GroupNetworkClassOfServiceGetAssignedListRequest
    GroupNetworkClassOfServiceGetAssignedUserListRequest
    GroupNetworkClassOfServiceUnassignListRequest
    GroupNewUserTemplateAssignUserServiceListRequest
    GroupNewUserTemplateUnassignUserServiceListRequest
    GroupPasswordRulesGetRequest16
    GroupPasswordRulesModifyRequest
    GroupPhoneDirectoryGetListRequest
    GroupPolicyGetRequest14sp4
    GroupPolicyModifyRequest
    GroupPortalPasscodeRulesGetRequest
    GroupPortalPasscodeRulesModifyRequest
    GroupRoutingProfileGetRequest
    GroupRoutingProfileModifyRequest
    GroupServiceAssignListRequest
    GroupServiceGetAuthorizationListRequest
    GroupServiceGetAuthorizedListRequest
    GroupServiceIsAssignedRequest
    GroupServiceModifyAuthorizationListRequest
    GroupServiceUnassignListRequest
    GroupShInterfaceGetUserListRequest
    GroupTimeScheduleAddRequest
    GroupTimeScheduleDeleteRequest
    GroupTimeScheduleGetListRequest
    GroupTimeScheduleGetRequest
    GroupTimeScheduleModifyRequest
    GroupTrunkGroupGetAvailableDetailListRequest

  -->

  <xs:complexType name="GroupAccessDeviceAddRequest14">
    <xs:annotation>
      <xs:documentation>
        Request to add a group access device.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
          <xs:element name="protocol" type="AccessDeviceProtocol" minOccurs="0"/>
          <xs:element name="netAddress" type="NetAddress" minOccurs="0"/>
          <xs:element name="port" type="Port1025" minOccurs="0"/>
          <xs:element name="outboundProxyServerNetAddress" type="NetAddress" minOccurs="0"/>
          <xs:element name="stunServerNetAddress" type="NetAddress" minOccurs="0"/>
          <xs:element name="macAddress" type="AccessDeviceMACAddress" minOccurs="0"/>
          <xs:element name="serialNumber" type="AccessDeviceSerialNumber" minOccurs="0"/>
          <xs:element name="description" type="AccessDeviceDescription" minOccurs="0"/>
          <xs:element name="physicalLocation" type="AccessDevicePhysicalLocation" minOccurs="0"/>
          <xs:element name="transportProtocol" type="TransportProtocol" minOccurs="0"/>
          <xs:element name="mobilityManagerProvisioningURL" type="URL" minOccurs="0"/>
          <xs:element name="mobilityManagerProvisioningUserName" type="MobilityManagerProvisioningUserName" minOccurs="0"/>
          <xs:element name="mobilityManagerProvisioningPassword" type="MobilityManagerProvisioningPassword" minOccurs="0"/>
          <xs:element name="mobilityManagerDefaultOriginatingServiceKey" type="MobilityManagerServiceKey" minOccurs="0"/>
          <xs:element name="mobilityManagerDefaultTerminatingServiceKey" type="MobilityManagerServiceKey" minOccurs="0"/>
          <xs:element name="useCustomUserNamePassword" type="xs:boolean" minOccurs="0"/>
          <xs:element name="accessDeviceCredentials" type="DeviceManagementUserNamePassword16" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceCustomTagAddRequest">
    <xs:annotation>
      <xs:documentation>
        Request to add a static configuration tag for a group access device.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="tagName" type="DeviceManagementTagName"/>
          <xs:element name="tagValue" type="DeviceManagementTagValue" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceCustomTagDeleteListRequest">
    <xs:annotation>
      <xs:documentation>
        Request to delete static configuration tags for a group access device.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="tagName" type="DeviceManagementTagName" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceCustomTagGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Request to get the list of custom configuration tags managed by the Device Management System, on a per-device profile basis.
        The response is either GroupAccessDeviceCustomTagGetListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceCustomTagGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAccessDeviceCustomTagGetListRequest.
        Contains a table of custom configuration tags managed by the Device Management System on a per-device profile basis.
        The column headings are: "Tag Name", "Tag Value"
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIResponse">
        <xs:sequence>
          <xs:element name="deviceCustomTagsTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceCustomTagModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Request to modify a static configuration tag for a group access device.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="tagName" type="DeviceManagementTagName"/>
          <xs:element name="tagValue" type="DeviceManagementTagValue" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceDeleteRequest">
    <xs:annotation>
      <xs:documentation>
        Request to delete a specified group access device.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceFileGetListRequest14sp8">
    <xs:annotation>
      <xs:documentation>
        Request to get the list of device files managed by the Device Management System, on a per-device profile basis.
        The response is either GroupAccessDeviceFileGetListResponse14sp8 or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceFileGetListResponse14sp8">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAccessDeviceFileGetListRequest14sp8.
        Contains a table of device files managed by the Device Management System on a per-device profile basis.
        The column headings are: "File Format", "Is Authenticated".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIResponse">
        <xs:sequence>
          <xs:element name="deviceFilesTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceFileGetRequest14sp8">
    <xs:annotation>
      <xs:documentation>
        Request to get a group device profile file.
        The response is either GroupAccessDeviceFileGetResponse14sp8 or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="fileFormat" type="DeviceManagementFileFormat"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceFileGetResponse14sp8">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAccessDeviceFileGetRequest14sp8.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIResponse">
        <xs:sequence>
          <xs:element name="fileSource" type="AccessDeviceEnhancedConfigurationMode"/>
          <xs:element name="configurationFileName" type="AccessDeviceEnhancedConfigurationFileName" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceFileModifyRequest14sp8">
    <xs:annotation>
      <xs:documentation>
        Request to modify a specified group access device file.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="fileFormat" type="DeviceManagementFileFormat"/>
          <xs:element name="fileSource" type="AccessDeviceEnhancedConfigurationMode" minOccurs="0"/>
          <xs:element name="uploadFile" type="FileResource" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetEnhancedConfigurationTypeListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests the list of configurable device types of devices that have already been
        added to the group.
        The response is either GroupAccessDeviceGetEnhancedConfigurationTypeListResponse
        or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetEnhancedConfigurationTypeListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAccessDeviceGetEnhancedConfigurationTypeListRequest.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="deviceType" type="AccessDeviceType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetEnhancedConfigurationTypeRequest14">
    <xs:annotation>
      <xs:documentation>
        Requests the details of a specified configurable device type for a group.
        The response is either GroupAccessDeviceGetEnhancedConfigurationTypeResponse14
        or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetEnhancedConfigurationTypeResponse14">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAccessDeviceGetEnhancedConfigurationTypeRequest14.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="supportsEnhancedConfiguration" type="xs:boolean"/>
          <xs:element name="supportsReset" type="xs:boolean"/>
          <xs:element name="configurationType" type="AccessDeviceEnhancedConfigurationType14" minOccurs="0"/>
          <xs:element name="configurationFileName" type="AccessDeviceEnhancedConfigurationFileName" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetAvailableDetailListRequest14">
    <xs:annotation>
      <xs:documentation>
        Requests the list of available access devices for assignment to a user
        within a group. The list includes devices created at the system, service provider, and group levels.
        The response is either GroupAccessDeviceGetAvailableDetailListResponse14 or
        ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="isMusicOnHold" type="xs:boolean"/>
          <xs:element name="onlyVideoCapable" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetAvailableDetailListResponse14">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAccessDeviceGetAvailableDetailListRequest14.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="availableAccessDevice" minOccurs="0" maxOccurs="unbounded">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="accessDevice" type="AccessDevice"/>
                <xs:element name="staticRegistrationCapable" type="xs:boolean"/>
                <xs:element name="useDomain" type="xs:boolean"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests the list of access devices in a group.
        The response is either GroupAccessDeviceGetListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="responseSizeLimit" type="ResponseSizeLimit" minOccurs="0"/>
          <xs:element name="searchCriteriaDeviceName" type="SearchCriteriaDeviceName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaDeviceMACAddress" type="SearchCriteriaDeviceMACAddress" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaDeviceNetAddress" type="SearchCriteriaDeviceNetAddress" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaExactDeviceType" type="SearchCriteriaExactDeviceType" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAccessDeviceGetListRequest.
        Contains a table of devices configured in the group.
        The column headings are: "Device Name", "Device Type", "Available Ports", "Net Address", "MAC Address" and "Status".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="accessDeviceTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetRequest16">
    <xs:annotation>
      <xs:documentation>
        Requests the configuration of a specified group access device.
        The response is either GroupAccessDeviceGetResponse16 or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetResponse16">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAccessDeviceGetRequest16.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="deviceType" type="AccessDeviceType"/>
          <xs:element name="protocol" type="AccessDeviceProtocol" minOccurs="0"/>
          <xs:element name="netAddress" type="NetAddress" minOccurs="0"/>
          <xs:element name="port" type="Port1025" minOccurs="0"/>
          <xs:element name="outboundProxyServerNetAddress" type="NetAddress" minOccurs="0"/>
          <xs:element name="stunServerNetAddress" type="NetAddress" minOccurs="0"/>
          <xs:element name="macAddress" type="AccessDeviceMACAddress" minOccurs="0"/>
          <xs:element name="serialNumber" type="AccessDeviceSerialNumber" minOccurs="0"/>
          <xs:element name="description" type="AccessDeviceDescription" minOccurs="0"/>
          <xs:element name="numberOfPorts" type="UnboundedPositiveInt"/>
          <xs:element name="numberOfAssignedPorts" type="xs:int"/>
          <xs:element name="status" type="AccessDeviceStatus"/>
          <xs:element name="configurationMode" type="AccessDeviceEnhancedConfigurationMode" minOccurs="0"/>
          <xs:element name="configurationFileName" type="AccessDeviceEnhancedConfigurationFileName" minOccurs="0"/>
          <xs:element name="physicalLocation" type="AccessDevicePhysicalLocation" minOccurs="0"/>
          <xs:element name="transportProtocol" type="TransportProtocol" minOccurs="0"/>
          <xs:element name="mobilityManagerProvisioningURL" type="URL" minOccurs="0"/>
          <xs:element name="mobilityManagerProvisioningUserName" type="MobilityManagerProvisioningUserName" minOccurs="0"/>
          <xs:element name="mobilityManagerDefaultOriginatingServiceKey" type="MobilityManagerServiceKey" minOccurs="0"/>
          <xs:element name="mobilityManagerDefaultTerminatingServiceKey" type="MobilityManagerServiceKey" minOccurs="0"/>
          <xs:element name="useCustomUserNamePassword" type="xs:boolean" minOccurs="0"/>
          <xs:element name="userName" type="UserId" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetUserListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests the configuration of a specified group access device.
        The response is either GroupAccessDeviceGetUserListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="responseSizeLimit" type="ResponseSizeLimit" minOccurs="0"/>
          <xs:element name="searchCriteriaLinePortUserPart" type="SearchCriteriaLinePortUserPart" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaLinePortDomain" type="SearchCriteriaLinePortDomain" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaUserLastName" type="SearchCriteriaUserLastName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaUserFirstName" type="SearchCriteriaUserFirstName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaDn" type="SearchCriteriaDn" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaUserId" type="SearchCriteriaUserId" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaExactEndpointType" type="SearchCriteriaExactEndpointType" minOccurs="0"/>
          <xs:element name="searchCriteriaExactUserType" type="SearchCriteriaExactUserType" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceGetUserListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAccessDeviceGetUserListRequest.
        The column headings for the deviceUserTable are: "Line/Port", "Last Name",
        "First Name", "Phone Number", "User Id", "User Type", "Endpoint Type", "Order", "Primary Line/Port".
        In IMS mode, the table will contain a row for each TEL-URI in the Phone Number column.
        In Standalone mode, rows for the alternate numbers are not included.
        The User Type column contains one of the enumerated UserType values.
        The Endpoint Type column contains one of the enumerated EndpointType values.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="deviceUserTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


  <xs:complexType name="GroupAccessDeviceModifyRequest14">
    <xs:annotation>
      <xs:documentation>
        Request to modify a specified group access device.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="protocol" type="AccessDeviceProtocol" minOccurs="0"/>
          <xs:element name="netAddress" type="NetAddress" nillable="true" minOccurs="0"/>
          <xs:element name="port" type="Port1025" nillable="true" minOccurs="0"/>
          <xs:element name="outboundProxyServerNetAddress" type="NetAddress" nillable="true" minOccurs="0"/>
          <xs:element name="stunServerNetAddress" type="NetAddress" nillable="true" minOccurs="0"/>
          <xs:element name="macAddress" type="AccessDeviceMACAddress" nillable="true" minOccurs="0"/>
          <xs:element name="serialNumber" type="AccessDeviceSerialNumber" nillable="true" minOccurs="0"/>
          <xs:element name="description" type="AccessDeviceDescription" nillable="true" minOccurs="0"/>
          <xs:element name="configurationMode" type="AccessDeviceEnhancedConfigurationMode" nillable="true" minOccurs="0"/>
          <xs:element name="configurationFile" type="FileResource" minOccurs="0"/>
          <xs:element name="physicalLocation" type="AccessDevicePhysicalLocation" nillable="true" minOccurs="0"/>
          <xs:element name="transportProtocol" type="TransportProtocol" minOccurs="0"/>
          <xs:element name="mobilityManagerProvisioningURL" type="URL" minOccurs="0"/>
          <xs:element name="mobilityManagerProvisioningUserName" type="MobilityManagerProvisioningUserName" minOccurs="0"/>
          <xs:element name="mobilityManagerProvisioningPassword" type="MobilityManagerProvisioningPassword" minOccurs="0"/>
          <xs:element name="mobilityManagerDefaultOriginatingServiceKey" type="MobilityManagerServiceKey" nillable="true" minOccurs="0"/>
          <xs:element name="mobilityManagerDefaultTerminatingServiceKey" type="MobilityManagerServiceKey" nillable="true" minOccurs="0"/>
          <xs:element name="useCustomUserNamePassword" type="xs:boolean" minOccurs="0"/>
          <xs:element name="accessDeviceCredentials" type="DeviceManagementUserNamePassword16" minOccurs="0" nillable="true"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAccessDeviceModifyUserRequest">
    <xs:annotation>
      <xs:documentation>
        Request to modify attributes for line/ports assigned on the group device profile.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="linePort" type="AccessDeviceEndpointLinePort"/>
          <xs:element name="isPrimaryLinePort" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAddRequest">
    <xs:annotation>
      <xs:documentation>
        Add a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="defaultDomain" type="NetAddress"/>
          <xs:element name="userLimit" type="GroupUserLimit"/>
          <xs:element name="groupName" type="GroupName" minOccurs="0"/>
          <xs:element name="callingLineIdName" type="GroupCallingLineIdName" minOccurs="0"/>
          <xs:element name="timeZone" type="TimeZone" minOccurs="0"/>
          <xs:element name="locationDialingCode" type="LocationDialingCode" minOccurs="0"/>
          <xs:element name="contact" type="Contact" minOccurs="0"/>
          <xs:element name="address" type="StreetAddress" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAdminAddRequest">
    <xs:annotation>
      <xs:documentation>
        Add a group administrator.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="userId" type="UserId"/>
          <xs:element name="firstName" type="FirstName" minOccurs="0"/>
          <xs:element name="lastName" type="LastName" minOccurs="0"/>
          <xs:element name="password" type="Password" minOccurs="0"/>
          <xs:element name="language" type="Language" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAdminDeleteRequest">
    <xs:annotation>
      <xs:documentation>
        Delete a group administrator.
        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:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAdminGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Get a list of group and department administrators within the group.
        The response is either a GroupAdminGetListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAdminGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAdminGetListRequest.
        Contains a 5 column table with column headings "Administrator ID",
        "Last Name", "First Name", "Department", "Language".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="groupAdminTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAdminGetRequest">
    <xs:annotation>
      <xs:documentation>
        Get a group administrators profile.
        The response is either a GroupAdminGetResponse 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="GroupAdminGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupAdminGetRequest.
        The response contains the group administrators profile information.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="firstName" type="FirstName" minOccurs="0"/>
          <xs:element name="lastName" type="LastName" minOccurs="0"/>
          <xs:element name="language" type="Language"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAdminGetPolicyRequest14sp1">
    <xs:annotation>
      <xs:documentation>
        Requests the Group administrator's policy settings.
        The response is either GroupAdminGetPolicyResponse14sp1 or 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="GroupAdminGetPolicyResponse14sp1">
    <xs:annotation>
      <xs:documentation>
        Response to GroupAdminGetPolicyRequest14sp1.
        Contains the policy settings for the group administrator.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="profileAccess" type="GroupAdminProfileAccess"/>
          <xs:element name="userAccess" type="GroupAdminUserAccess"/>
          <xs:element name="adminAccess" type="GroupAdminAdminAccess"/>
          <xs:element name="departmentAccess" type="GroupAdminDepartmentAccess"/>
          <xs:element name="accessDeviceAccess" type="GroupAdminAccessDeviceAccess"/>
          <xs:element name="enhancedServiceInstanceAccess" type="GroupAdminEnhancedServiceInstanceAccess"/>
          <xs:element name="featureAccessCodeAccess" type="GroupAdminFeatureAccessCodeAccess"/>
          <xs:element name="phoneNumberExtensionAccess" type="GroupAdminPhoneNumberExtensionAccess"/>
          <xs:element name="serviceAccess" type="GroupAdminServiceAccess"/>
          <xs:element name="trunkGroupAccess" type="GroupAdminTrunkGroupAccess"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAdminModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify a group administrator.
        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="firstName" type="FirstName" nillable="true" minOccurs="0"/>
          <xs:element name="lastName" type="LastName" nillable="true" minOccurs="0"/>
          <xs:element name="password" type="Password" nillable="true" minOccurs="0"/>
          <xs:element name="language" type="Language" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupAdminModifyPolicyRequest">
    <xs:annotation>
      <xs:documentation>
        Request to modify the group administrator's policy settings.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="userId" type="UserId"/>
          <xs:element name="profileAccess" type="GroupAdminProfileAccess" minOccurs="0"/>
          <xs:element name="userAccess" type="GroupAdminUserAccess" minOccurs="0"/>
          <xs:element name="adminAccess" type="GroupAdminAdminAccess" minOccurs="0"/>
          <xs:element name="departmentAccess" type="GroupAdminDepartmentAccess" minOccurs="0"/>
          <xs:element name="accessDeviceAccess" type="GroupAdminAccessDeviceAccess" minOccurs="0"/>
          <xs:element name="enhancedServiceInstanceAccess" type="GroupAdminEnhancedServiceInstanceAccess" minOccurs="0"/>
          <xs:element name="featureAccessCodeAccess" type="GroupAdminFeatureAccessCodeAccess" minOccurs="0"/>
          <xs:element name="phoneNumberExtensionAccess" type="GroupAdminPhoneNumberExtensionAccess" minOccurs="0"/>
          <xs:element name="serviceAccess" type="GroupAdminServiceAccess" minOccurs="0"/>
          <xs:element name="trunkGroupAccess" type="GroupAdminTrunkGroupAccess" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

	<xs:complexType name="GroupCallProcessingGetPolicyRequest16">
      <xs:annotation>
        <xs:documentation>
          Request the group level data associated with Call Processing Policy.
          The response is either a GroupCallProcessingGetPolicyResponse16 or an
          ErrorResponse.

          The useGroupCLIDSetting attribute controls the CLID settings 
          (clidPolicy, emergencyClidPolicy, allowAlternateNumbersForRedirectingIdentity, useGroupName)

          The useGroupMediaSetting attribute controls the Media settings 
          (medisPolicySelection, supportedMediaSetName)

         The useGroupCallLimitsSetting attribute controls the Call Limits settings 
         (useMaxSimultaneousCalls, maxSimultaneousCalls, 
         useMaxSimultaneousVideoCalls, maxSimultaneousVideoCalls, useMaxCallTimeForAnsweredCalls, maxCallTimeForAnsweredCallsMinutes, useMaxCallTimeForUnansweredCalls, maxCallTimeForUnansweredCallsMinutes, useMaxConcurrentRedirectedCalls, useMaxFindMeFollowMeDepth, maxRedirectionDepth, useMaxConcurrentFindMeFollowMeInvocations, maxConcurrentFindMeFollowMeInvocations)

         The useGroupTranslationRoutingSetting attribute controls the routing and translation settings 
         (networkUsageSelection, enforceGroupCallingLineIdentityRestriction, 
         allowEnterpriseGroupCallTypingForPrivateDialingPlan, allowEnterpriseGroupCallTypingForPublicDialingPlan, overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan, enableEnterpriseExtensionDialing)

        </xs:documentation>
      </xs:annotation>
      <xs:complexContent>
        <xs:extension base="core:OCIRequest">
          <xs:sequence>
            <xs:element name="serviceProviderId" type="ServiceProviderId"/>
            <xs:element name="groupId" type="GroupId"/>
          </xs:sequence>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  
    <xs:complexType name="GroupCallProcessingGetPolicyResponse16">
      <xs:annotation>
        <xs:documentation>
          Response to GroupCallProcessingGetPolicyRequest16.
        </xs:documentation>
      </xs:annotation>
      <xs:complexContent>
        <xs:extension base="core:OCIDataResponse">
          <xs:sequence>
            <xs:element name="useGroupCLIDSetting" type="xs:boolean"/>
            <xs:element name="useGroupMediaSetting" type="xs:boolean"/>
            <xs:element name="useGroupCallLimitsSetting" type="xs:boolean"/>
            <xs:element name="useGroupTranslationRoutingSetting" type="xs:boolean"/>
            <xs:element name="useMaxSimultaneousCalls" type="xs:boolean"/>
            <xs:element name="maxSimultaneousCalls" type="CallProcessingMaxSimultaneousCalls"/>
            <xs:element name="useMaxSimultaneousVideoCalls" type="xs:boolean"/>
            <xs:element name="maxSimultaneousVideoCalls" type="CallProcessingMaxSimultaneousCalls"/>
            <xs:element name="useMaxCallTimeForAnsweredCalls" type="xs:boolean"/>
            <xs:element name="maxCallTimeForAnsweredCallsMinutes" type="CallProcessingMaxCallTimeForAnsweredCallsMinutes16"/>
            <xs:element name="useMaxCallTimeForUnansweredCalls" type="xs:boolean"/>
            <xs:element name="maxCallTimeForUnansweredCallsMinutes" type="CallProcessingMaxCallTimeForUnansweredCallsMinutes"/>
            <xs:element name="mediaPolicySelection" type="MediaPolicySelection"/>
            <xs:element name="supportedMediaSetName" type="MediaSetName" minOccurs="0"/>
            <xs:element name="networkUsageSelection" type="NetworkUsageSelection"/>
            <xs:element name="enforceGroupCallingLineIdentityRestriction" type="xs:boolean"/>
            <xs:element name="allowEnterpriseGroupCallTypingForPrivateDialingPlan" type="xs:boolean"/>
            <xs:element name="allowEnterpriseGroupCallTypingForPublicDialingPlan" type="xs:boolean"/>    
            <xs:element name="overrideCLIDRestrictionForPrivateCallCategory" type="xs:boolean" minOccurs="0"/>
            <xs:element name="useEnterpriseCLIDForPrivateCallCategory" type="xs:boolean" minOccurs="0"/>
            <xs:element name="enableEnterpriseExtensionDialing" type="xs:boolean"/>
            <xs:element name="useMaxConcurrentRedirectedCalls" type="xs:boolean"/>
            <xs:element name="maxConcurrentRedirectedCalls" type="CallProcessingMaxConcurrentRedirectedCalls"/>
            <xs:element name="useMaxFindMeFollowMeDepth" type="xs:boolean"/>
            <xs:element name="maxFindMeFollowMeDepth" type="CallProcessingMaxFindMeFollowMeDepth"/>
            <xs:element name="maxRedirectionDepth" type="CallProcessingMaxRedirectionDepth"/>
            <xs:element name="useMaxConcurrentFindMeFollowMeInvocations" type="xs:boolean"/>
            <xs:element name="maxConcurrentFindMeFollowMeInvocations" type="CallProcessingMaxConcurrentFindMeFollowMeInvocations"/>
            <xs:element name="clidPolicy" type="GroupCLIDPolicy" />
            <xs:element name="emergencyClidPolicy" type="GroupCLIDPolicy" />
            <xs:element name="allowAlternateNumbersForRedirectingIdentity" type="xs:boolean" />
            <xs:element name="useGroupName" type="xs:boolean"/>           
         </xs:sequence>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>

  <xs:complexType name="GroupCallProcessingModifyPolicyRequest15sp2">
      <xs:annotation>
        <xs:documentation>
          Modify the group level data associated with Call Procesing Policy.
          The response is either a SuccessResponse or an ErrorResponse.
      The useGroupCLIDSetting attribute controls the CLID settings 
      (clidPolicy, emergencyClidPolicy, allowAlternateNumbersForRedirectingIdentity, useGroupName)

      The useGroupMediaSetting attribute controls the Media settings 
      (medisPolicySelection, supportedMediaSetName)

          The useGroupCallLimitsSetting attribute controls the Call Limits settings 
          (useMaxSimultaneousCalls, maxSimultaneousCalls, useMaxSimultaneousVideoCalls, maxSimultaneousVideoCalls, useMaxCallTimeForAnsweredCalls, maxCallTimeForAnsweredCallsMinutes, useMaxCallTimeForUnansweredCalls, maxCallTimeForUnansweredCallsMinutes, useMaxConcurrentRedirectedCalls, useMaxFindMeFollowMeDepth, maxRedirectionDepth, useMaxConcurrentFindMeFollowMeInvocations, maxConcurrentFindMeFollowMeInvocations)

        The useGroupTranslationRoutingSetting attribute controls the routing and
         translation settings (networkUsageSelection, enforceGroupCallingLineIdentityRestriction, 
         allowEnterpriseGroupCallTypingForPrivateDialingPlan, allowEnterpriseGroupCallTypingForPublicDialingPlan, overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan, enableEnterpriseExtensionDialing)

        </xs:documentation>
      </xs:annotation>
      <xs:complexContent>
        <xs:extension base="core:OCIRequest">
          <xs:sequence>
            <xs:element name="serviceProviderId" type="ServiceProviderId"/>
            <xs:element name="groupId" type="GroupId"/>
            <xs:element name="useGroupCLIDSetting" type="xs:boolean" minOccurs="0"/>
            <xs:element name="useGroupMediaSetting" type="xs:boolean" minOccurs="0"/>
            <xs:element name="useGroupCallLimitsSetting" type="xs:boolean" minOccurs="0"/>
            <xs:element name="useGroupTranslationRoutingSetting" type="xs:boolean" minOccurs="0"/>
            <xs:element name="useMaxSimultaneousCalls" type="xs:boolean" minOccurs="0"/>
            <xs:element name="maxSimultaneousCalls" type="CallProcessingMaxSimultaneousCalls" minOccurs="0"/>
            <xs:element name="useMaxSimultaneousVideoCalls" type="xs:boolean" minOccurs="0"/>
            <xs:element name="maxSimultaneousVideoCalls" type="CallProcessingMaxSimultaneousCalls" minOccurs="0"/>
            <xs:element name="useMaxCallTimeForAnsweredCalls" type="xs:boolean" minOccurs="0"/>
            <xs:element name="maxCallTimeForAnsweredCallsMinutes" type="CallProcessingMaxCallTimeForAnsweredCallsMinutes16" minOccurs="0"/>
            <xs:element name="useMaxCallTimeForUnansweredCalls" type="xs:boolean" minOccurs="0"/>
            <xs:element name="maxCallTimeForUnansweredCallsMinutes" type="CallProcessingMaxCallTimeForUnansweredCallsMinutes" minOccurs="0"/>
            <xs:element name="mediaPolicySelection" type="MediaPolicySelection" minOccurs="0"/>
            <xs:element name="supportedMediaSetName" type="MediaSetName" nillable="true" minOccurs="0"/>
            <xs:element name="networkUsageSelection" type="NetworkUsageSelection" minOccurs="0"/>
            <xs:element name="enforceGroupCallingLineIdentityRestriction" type="xs:boolean" minOccurs="0"/>
            <xs:element name="allowEnterpriseGroupCallTypingForPrivateDialingPlan" type="xs:boolean" minOccurs="0"/>
            <xs:element name="allowEnterpriseGroupCallTypingForPublicDialingPlan" type="xs:boolean" minOccurs="0"/>
            <xs:element name="overrideCLIDRestrictionForPrivateCallCategory" type="xs:boolean" minOccurs="0"/>
            <xs:element name="useEnterpriseCLIDForPrivateCallCategory" type="xs:boolean" minOccurs="0"/>
            <xs:element name="enableEnterpriseExtensionDialing" type="xs:boolean" minOccurs="0"/>
            <xs:element name="useMaxConcurrentRedirectedCalls" type="xs:boolean" minOccurs="0"/>
            <xs:element name="maxConcurrentRedirectedCalls" type="CallProcessingMaxConcurrentRedirectedCalls" minOccurs="0"/>
            <xs:element name="useMaxFindMeFollowMeDepth" type="xs:boolean" minOccurs="0"/>
            <xs:element name="maxFindMeFollowMeDepth" type="CallProcessingMaxFindMeFollowMeDepth" minOccurs="0"/>
            <xs:element name="maxRedirectionDepth" type="CallProcessingMaxRedirectionDepth" minOccurs="0"/>
            <xs:element name="useMaxConcurrentFindMeFollowMeInvocations" type="xs:boolean" minOccurs="0"/>
            <xs:element name="maxConcurrentFindMeFollowMeInvocations" type="CallProcessingMaxConcurrentFindMeFollowMeInvocations" minOccurs="0"/>
            <xs:element name="clidPolicy" type="GroupCLIDPolicy" minOccurs="0"/>
          <xs:element name="emergencyClidPolicy" type="GroupCLIDPolicy" minOccurs="0"/>
            <xs:element name="allowAlternateNumbersForRedirectingIdentity" type="xs:boolean" minOccurs="0"/>
            <xs:element name="useGroupName" type="xs:boolean" minOccurs="0"/>
          </xs:sequence>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  
  <xs:complexType name="GroupCommonPhoneListAddListRequest">
    <xs:annotation>
      <xs:documentation>
        Add one or more entries to a group's common phone list.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="entry" type="PhoneListEntry" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCommonPhoneListDeleteListRequest">
    <xs:annotation>
      <xs:documentation>
        Delete one or more entries from a group's common phone list.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="entryName" type="PhoneListEntryName" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCommonPhoneListGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Get a group's common phone list.
        The response is either a GroupCommonPhoneListGetListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCommonPhoneListGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupCommonPhoneListGetListRequest.
        The response contains the group's common phone list.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="entry" type="PhoneListEntry" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCommonPhoneListModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify an entry in a group's common phone list.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="entryName" type="PhoneListEntryName"/>
          <xs:element name="newEntryName" type="PhoneListEntryName"  minOccurs="0"/>
          <xs:element name="phoneNumber" type="OutgoingDN" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupCommunicationBarringAuthorizationCodeAddListRequest">
    <xs:annotation>
      <xs:documentation>
        Add a list of Communication Barring Authorization codes to a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="code" type="CommunicationBarringAuthorizationCodeEntry" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupCommunicationBarringAuthorizationCodeDeleteListRequest">
    <xs:annotation>
      <xs:documentation>
        Delete a list of Communication Barring Authorization codes from a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="code" type="CommunicationBarringAuthorizationCode" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupCommunicationBarringAuthorizationCodeGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Get a list of Communication Barring Authorization Codes for a group.
        The response is either a GroupCommunicationBarringAuthorizationCodeGetListResponse 
        or an ErorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupCommunicationBarringAuthorizationCodeGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupCommunicationBarringAuthorizationCodeGetListRequest.
        Contains a list of Communication Barring Authorization Codes
        assigned to the group.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="code" type="CommunicationBarringAuthorizationCodeEntry" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>  

  <xs:complexType name="GroupCPEConfigRebuildConfigFileRequest">
    <xs:annotation>
      <xs:documentation>
        Rebuild the group default config file for the specified device type.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCPEConfigRebuildDeviceConfigFileRequest">
    <xs:annotation>
      <xs:documentation>
        Rebuild the config file for a specified device.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCPEConfigReorderDeviceLinePortsRequest">
    <xs:annotation>
      <xs:documentation>
        Reorder the lines of a group device. You can not add or delete line ports, only
        re-ordering the list is allowed. The ordered list of line ports can be obtained
        with the GroupAccessDeviceGetRequest14sp6 command.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
          <xs:element name="orderedLinePortList" type="AccessDeviceEndpointLinePort" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCPEConfigResetDeviceRequest">
    <xs:annotation>
      <xs:documentation>
        Reset a specific group device.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceName" type="AccessDeviceName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCPEConfigResetDeviceTypeRequest">
    <xs:annotation>
      <xs:documentation>
        Reset all the devices of the specified device type in a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCPEConfigSetConfigFileRequest">
    <xs:annotation>
      <xs:documentation>
        Request to set a new group default configuration file for a device type.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
          <xs:element name="configFile" type="FileResource"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCustomContactDirectoryAddRequest">
    <xs:annotation>
      <xs:documentation>
        Adds a Custom Contact Directory to a group.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="name" type="CustomContactDirectoryName"/>
          <xs:element name="userId" type="UserId" minOccurs="0" maxOccurs="1000"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCustomContactDirectoryDeleteRequest">
    <xs:annotation>
      <xs:documentation>
        Deletes a Custom Contact Directory to a group.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="name" type="CustomContactDirectoryName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCustomContactDirectoryGetAvailableUserListRequest">
    <xs:annotation>
      <xs:documentation>
        Get a list of users that can be part of a custom contact directory.
        The response is either GroupCustomContactDirectoryGetAvailableUserListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="responseSizeLimit" type="ResponseSizeLimit" minOccurs="0"/>
          <xs:element name="searchCriteriaUserLastName"        type="SearchCriteriaUserLastName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaUserFirstName"       type="SearchCriteriaUserFirstName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaExactUserDepartment" type="SearchCriteriaExactUserDepartment" minOccurs="0"/>
          <xs:element name="searchCriteriaExactUserGroup"      type="SearchCriteriaExactUserGroup" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCustomContactDirectoryGetAvailableUserListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupCustomContactDirectoryGetAvailableUserListRequest.
        Contains a table with column headings: "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="userTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCustomContactDirectoryGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Gets the list of Custom Contact Directories for a group.
        The response is either GroupCustomContactDirectoryGetListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCustomContactDirectoryGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupCustomContactDirectoryGetListRequest.
        The response contains all the group's custom contact directory names.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="name" type="CustomContactDirectoryName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCustomContactDirectoryGetRequest">
    <xs:annotation>
      <xs:documentation>
        Gets a Custom Contact Directory in a group.
        The response is either GroupCustomContactDirectoryGetResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="name" type="CustomContactDirectoryName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCustomContactDirectoryGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupCustomContactDirectoryGetRequest.
        The response contains all the group's custom contact directory names.
        Contains a table with column headings: "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="userTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupCustomContactDirectoryModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Adds a Custom Contact Directory to a group.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="name" type="CustomContactDirectoryName"/>
          <xs:element name="newName" type="CustomContactDirectoryName" minOccurs="0"/>
          <xs:element name="userIdList" type="ReplacementUserIdList" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeleteRequest">
    <xs:annotation>
      <xs:documentation>
        Delete a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

 <xs:complexType name="GroupDepartmentAddRequest">
    <xs:annotation>
      <xs:documentation>
        Add a department to a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="departmentName" type="DepartmentName"/>
          <xs:element name="parentDepartmentKey" type="DepartmentKey" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDepartmentAdminAddRequest">
    <xs:annotation>
      <xs:documentation>
        Add a department administrator to a group department.
        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="departmentKey" type="GroupDepartmentKey"/>
          <xs:element name="userId" type="UserId"/>
          <xs:element name="firstName" type="FirstName" minOccurs="0"/>
          <xs:element name="lastName" type="LastName" minOccurs="0"/>
          <xs:element name="password" type="Password" minOccurs="0"/>
          <xs:element name="language" type="Language" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDepartmentAdminDeleteRequest">
    <xs:annotation>
      <xs:documentation>
        Delete a group department administrator.
        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:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDepartmentAdminGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Get a list of department administrators for the department.
        The response is either a GroupDepartmentAdminGetListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="departmentKey" type="GroupDepartmentKey"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDepartmentAdminGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDepartmentAdminGetListRequest.
        Contains a 5 column table with column headings "Administrator ID",
        "Last Name", "First Name", "Department", "Language".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="departmentAdminTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDepartmentAdminGetRequest">
    <xs:annotation>
      <xs:documentation>
        Get a group department administrators profile.
        The response is either a GroupDepartmentAdminGetResponse 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="GroupDepartmentAdminGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupDepartmentAdminGetRequest.
        The response contains the group department administrators profile information.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="departmentKey" type="GroupDepartmentKey"/>
          <xs:element name="departmentFullPath" type="DepartmentName"/>
          <xs:element name="firstName" type="FirstName" minOccurs="0"/>
          <xs:element name="lastName" type="LastName" minOccurs="0"/>
          <xs:element name="language" type="Language"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDepartmentAdminModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify a group department administrator.
        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="firstName" type="FirstName" nillable="true" minOccurs="0"/>
          <xs:element name="lastName" type="LastName" nillable="true" minOccurs="0"/>
          <xs:element name="password" type="Password" nillable="true" minOccurs="0"/>
          <xs:element name="language" type="Language" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

 <xs:complexType name="GroupDepartmentDeleteRequest">
    <xs:annotation>
      <xs:documentation>
       Delete a department from a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="departmentName" type="DepartmentName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDepartmentGetAvailableParentListRequest">
    <xs:annotation>
      <xs:documentation>
        Get a list of departments that could be the parent department of the specified
        department. The department itself and all its descendents are not eligible to be
        the parent department. If the group belongs to an enterprise, it also returns the
        departments defined in the enterprise it belongs to.
        The response is either GroupDepartmentGetAvailableParentListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="departmentName" type="DepartmentName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

 <xs:complexType name="GroupDepartmentGetAvailableParentListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDepartmentGetAvailableParentListRequest.
        The response includes two parallel arrays of department keys and department display names.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="departmentKey" type="DepartmentKey" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="fullPathName" type="DepartmentFullPathName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDepartmentGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Request a list of departments in a group. You may request only the
        list of departments defined at the group-level, or you may request
        the list of all departments in the group including all the departments
        defined within the enterprise the group belongs to.
        The response is either GroupDepartmentGetListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="includeEnterpriseDepartments" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDepartmentGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDepartmentGetListRequest.
        The response includes two parallel arrays of department keys and department display names.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="departmentKey" type="DepartmentKey" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="fullPathName" type="DepartmentFullPathName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

 <xs:complexType name="GroupDepartmentModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify a department of a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="departmentName" type="DepartmentName"/>
          <xs:element name="newDepartmentName" type="DepartmentName" minOccurs="0"/>
          <xs:element name="newParentDepartmentKey" type="DepartmentKey" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeCustomTagAddRequest">
    <xs:annotation>
      <xs:documentation>
        Request to add a static configuration tag for an access device type used in a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
          <xs:element name="tagName" type="DeviceManagementTagName"/>
          <xs:element name="tagValue" type="DeviceManagementTagValue" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeCustomTagDeleteListRequest">
    <xs:annotation>
      <xs:documentation>
        Request to delete static configuration tags for an access device type used in a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
          <xs:element name="tagName" type="DeviceManagementTagName" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeCustomTagModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Request to modify a static configuration tag for an access device type used in a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
          <xs:element name="tagName" type="DeviceManagementTagName"/>
          <xs:element name="tagValue" type="DeviceManagementTagValue" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeCustomTagGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Request to get the list of custom configuration tags managed by the Device Management System, on a per-device type basis for a group.
        The response is either GroupDeviceTypeCustomTagGetListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeCustomTagGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDeviceTypeCustomTagGetListRequest.
        Contains a table of custom configuration tags managed by the Device Management System on a per-device type basis for a group.
        The column headings are: "Tag Name", "Tag Value"
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIResponse">
        <xs:sequence>
          <xs:element name="groupDeviceTypeCustomTagsTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeFileModifyRequest14sp8">
    <xs:annotation>
      <xs:documentation>
        Request to modify a specified device type file for a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
          <xs:element name="fileFormat" type="DeviceManagementFileFormat"/>
          <xs:element name="fileSource" type="AccessDeviceEnhancedConfigurationMode" minOccurs="0"/>
          <xs:element name="uploadFile" type="FileResource" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeFileGetListRequest14sp8">
    <xs:annotation>
      <xs:documentation>
        Request to get the list of device type files managed by the Device Management System, on a per-group basis.
        The response is either GroupDeviceTypeFileGetListResponse14sp8 or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeFileGetListResponse14sp8">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDeviceTypeFileGetListRequest14sp8.
        Contains a table of device type files managed by the Device Management System, on a per-group basis.
        The column headings are: "File Format", "Is Authenticated".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIResponse">
        <xs:sequence>
          <xs:element name="groupDeviceTypeFilesTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeFileGetRequest14sp8">
    <xs:annotation>
      <xs:documentation>
        Request to get a group device type file.
        The response is either GroupDeviceTypeFileGetResponse14sp8 or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="deviceType" type="AccessDeviceType"/>
          <xs:element name="fileFormat" type="DeviceManagementFileFormat"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDeviceTypeFileGetResponse14sp8">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDeviceTypeFileGetRequest14sp8.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIResponse">
        <xs:sequence>
          <xs:element name="fileSource" type="AccessDeviceEnhancedConfigurationMode" minOccurs="0"/>
          <xs:element name="configurationFileName" type="AccessDeviceEnhancedConfigurationFileName" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyGetRequest">
    <xs:annotation>
      <xs:documentation>
        Request the Group level data associated with Dial Plan Policy.
        The response is either a GroupDialPlanPolicyGetResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDialPlanPolicyGetRequest
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="useSetting" type="GroupDialPlanPolicySettingLevel"/>
          <xs:element name="requiresAccessCodeForPublicCalls" type="xs:boolean"/>
          <xs:element name="allowE164PublicCalls" type="xs:boolean"/>
          <xs:element name="publicDigitMap" type="DigitMap" minOccurs="0"/>
          <xs:element name="privateDigitMap" type="DigitMap" minOccurs="0"/>
       </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify the Group level data associated with Dial Plan Policy.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="useSetting" type="GroupDialPlanPolicySettingLevel" minOccurs="0"/>
          <xs:element name="requiresAccessCodeForPublicCalls" type="xs:boolean" minOccurs="0"/>
          <xs:element name="allowE164PublicCalls" type="xs:boolean" minOccurs="0"/>
          <xs:element name="publicDigitMap" type="DigitMap" nillable="true" minOccurs="0"/>
          <xs:element name="privateDigitMap" type="DigitMap" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyGetAccessCodeListRequest">
    <xs:annotation>
      <xs:documentation>
        Request the Group level data associated with Dial Plan Policy.
        The response is either a GroupDialPlanPolicyGetAccessCodeListResponse
        or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyGetAccessCodeListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDialPlanPolicyGetAccessCodeListRequest
        Contains a table with column headings: "Access Code",
        "Enable Secondary Dial Tone", "Description"
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="accessCodeTable" type="core:OCITable"/>
       </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyGetAccessCodeRequest">
    <xs:annotation>
      <xs:documentation>
        Request access code data associated with Group level Dial Plan Policy access codes.
        The response is either a GroupDialPlanPolicyGetAccessCodeResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="accessCode" type="DialPlanAccessCode"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyGetAccessCodeResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDialPlanPolicyGetAccessCodeRequest
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="includeCodeForNetworkTranslationsAndRouting" type="xs:boolean"/>
          <xs:element name="includeCodeForScreeningServices" type="xs:boolean"/>
          <xs:element name="enableSecondaryDialTone" type="xs:boolean"/>
          <xs:element name="description" type="DialPlanAccessCodeDescription" minOccurs="0"/>
       </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyAddAccessCodeRequest">
    <xs:annotation>
      <xs:documentation>
        Request to add a Group level Dial Plan Access Code and its all attribues.
        The response is either SuccessResponse or ErrorResponse.  
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="accessCode" type="DialPlanAccessCode"/>
          <xs:element name="includeCodeForNetworkTranslationsAndRouting" type="xs:boolean"/>
          <xs:element name="includeCodeForScreeningServices" type="xs:boolean"/>
          <xs:element name="enableSecondaryDialTone" type="xs:boolean"/>
          <xs:element name="description" type="DialPlanAccessCodeDescription" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyDeleteAccessCodeRequest">
    <xs:annotation>
      <xs:documentation>
        Request to delete a Group level Dial Plan Access Code and its all attribues.
        The response is either SuccessResponse or ErrorResponse.      
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="accessCode" type="DialPlanAccessCode"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDialPlanPolicyModifyAccessCodeRequest">
    <xs:annotation>
      <xs:documentation>
        Request to modify a Group level Dial Plan Access Code and its attribues.
        The response is either SuccessResponse or ErrorResponse.      
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="accessCode" type="DialPlanAccessCode"/>
          <xs:element name="includeCodeForNetworkTranslationsAndRouting" type="xs:boolean" minOccurs="0"/>
          <xs:element name="includeCodeForScreeningServices" type="xs:boolean" minOccurs="0"/>
          <xs:element name="enableSecondaryDialTone" type="xs:boolean" minOccurs="0"/>
          <xs:element name="description" type="DialPlanAccessCodeDescription" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDigitCollectionGetRequest13mp4">
    <xs:annotation>
      <xs:documentation>
        Request the group's digit collection attributes.
        The response is either a GroupDigitCollectionGetResponse13mp4 or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDigitCollectionGetResponse13mp4">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDigitCollectionGetRequest13mp4.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="useSetting" type="GroupDigitCollectionSettingLevel"/>
          <xs:element name="accessCode" type="AccessCode" minOccurs="0"/>
          <xs:element name="publicDigitMap" type="DigitMap" minOccurs="0"/>
          <xs:element name="privateDigitMap" type="DigitMap" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDigitCollectionModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modifies the group's digit collection attributes.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="useSetting" type="GroupDigitCollectionSettingLevel" minOccurs="0"/>
          <xs:element name="accessCode" type="AccessCode" nillable="true" minOccurs="0"/>
          <xs:element name="publicDigitMap" type="DigitMap" nillable="true" minOccurs="0"/>
          <xs:element name="privateDigitMap" type="DigitMap" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnActivateListRequest">
    <xs:annotation>
      <xs:documentation>
        Activate a list of assigned DNs on a group. It is possible to activate either: a single DN,
        or a list of DNs, or a range of DNs, or any combination thereof.
        The DNs must have previously been assigned to a user or virtual service.
        It is not an error to activate an already activated DN
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="phoneNumber" type="DN" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="dnRange" type="DNRange" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnAssignListRequest">
    <xs:annotation>
      <xs:documentation>
        Assign a list of service provider DNs to a group. It is possible to assign either: a single DN,
        or a list of DNs, or a range of DNs, or any combination thereof.
        The DNs must have previously been added to the service provider or enterprise.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="phoneNumber" type="DN" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="dnRange" type="DNRange" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnDeactivateListRequest">
    <xs:annotation>
      <xs:documentation>
        Deactivate a list of activated DNs on a group. The DNs then become available for
        activation again. It is possible to deactivate either: a single DN,
        or a list of DNs, or a range of DNs, or any combination thereof.
        It is not an error to deactivate an already deactivated DN.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="phoneNumber" type="DN" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="dnRange" type="DNRange" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetActivationListRequest">
    <xs:annotation>
      <xs:documentation>
        Get the list of activated and deactivated DNs in a group. Ranges of DNs with identical assignment and activation properties are coalesced to a single table row entry.  Only DNs assigned to a users are listed in the response.
        The response is either a GroupDnGetActivationListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetActivationListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupDnGetActivationListRequest.
        The response contains a table with columns: "Phone Numbers", and "Activated".  ".  Phone Numbers are only returned if assigned to a user.
        The "Phone Numbers" column contains either a single DN or a range of DNs.
        The "Activated" column indicates if the phone number(s) are activated or not.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="dnTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetAssignmentListRequest">
    <xs:annotation>
      <xs:documentation>
        Get the list of assigned and unassigned DNs in a group. Each DN can be assigned
  to a user and/or department. Ranges of DNs with identical assignment and activation properties
  are coalesced to a single table row entry.
  The response is either a GroupDnGetAssignmentListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="responseSizeLimit" type="ResponseSizeLimit" minOccurs="0"/>
          <xs:element name="searchCriteriaDn" type="SearchCriteriaDn" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaUserFirstName" type="SearchCriteriaUserFirstName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaUserLastName" type="SearchCriteriaUserLastName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaExactDnDepartment" type="SearchCriteriaExactDnDepartment" minOccurs="0"/>
          <xs:element name="searchCriteriaExactDnActivation" type="SearchCriteriaExactDnActivation" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetAssignmentListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupDnGetAssignmentListRequest.
        The response contains a table with columns: "Phone Numbers", "Assigned To", "Department".
        The "Phone Numbers" column contains either a single DN or a range of DNs.
        The "Assigned To" column contains the user name or service instance name possessing the DN(s).
        The "Department" column contains the department of the DN, not the department of the user or service instance.
        The "Activated" column indicates if the DN or DN range has been activated.  Only has a value if the DN(s) is assigned to a user.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="dnTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetDetailedAvailableListRequest">
    <xs:annotation>
      <xs:documentation>
        Get the list of DNs that are assigned to a group and still available for
        assignment to users within the group with the department name, if the DN
        is assigned to the department.
        The response is either a GroupDnGetDetailedAvailableListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetDetailedAvailableListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupDnGetDetailedAvailableListRequest.
        The response contains a table with columns: "Phone Number", "Department".
        The "Phone Numbers" column contains a single DN.
        The "Department" column contains the department of the DN if the DN is part of the department.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="dnTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetAvailableListRequest">
    <xs:annotation>
      <xs:documentation>
        Get the list of DNs that are assigned to a group and still available for
        assignment to users or service instances within the group.
        The response is either a GroupDnGetAvailableListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetAvailableListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupDnGetAvailableListRequest.
        The response contains the list of DNs that are assigned to a group and still available for
        assignment to users or service instances within the group.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="phoneNumber" type="DN" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Get the list of DNs that are assigned to a group.
        The response is either a GroupDnGetListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupDnGetListRequest.
        The response contains the list of DNs assigned to the group.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="phoneNumber" type="DN" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetSummaryListRequest">
    <xs:annotation>
      <xs:documentation>
        Get the list of assigned and unassigned DN ranges in a group.
        The response is either a GroupDnGetSummaryListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnGetSummaryListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupDnGetSummaryListRequest.
        The response contains a table with columns: "Phone Numbers", "Assigned".
        The "Phone Numbers" column contains either a single DN or a range of DNs.
        The "Assigned" column contains a boolean flag indicating if the DN(s) are
        currently assigned to a user or service instance.
        The "Activated" column indicates if the DN or DN range has been activated.  Only has a value if the DN(s) is assigned to a user.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="dnTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnListAssignDepartmentRequest">
    <xs:annotation>
      <xs:documentation>
        Assign a list of group DNs to a department. If the department is not specified, this
        will make the DNs become unassigned from any department.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="departmentKey" type="DepartmentKey" minOccurs="0"/>
          <xs:element name="phoneNumber" type="DN" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="dnRange" type="DNRange" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDnUnassignListRequest">
    <xs:annotation>
      <xs:documentation>
        Unassign a list of service provider DNs from a group. The DNs then become available for
        assignment to other groups. It is possible to unassign either: a single DN,
        or a list of DNs, or a range of DNs, or any combination thereof.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="phoneNumber" type="DN" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="dnRange" type="DNRange" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDomainAssignListRequest">
    <xs:annotation>
      <xs:documentation>
        Assign a list of domains to a group.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="domain" type="NetAddress" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDomainGetAssignedUserListRequest">
    <xs:annotation>
      <xs:documentation>
        Request a list of users within in a group that have a given domain assigned.
        The response is either GroupDomainGetAssignedUserListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="domain" type="NetAddress"/>
          <xs:element name="responseSizeLimit" type="ResponseSizeLimit" minOccurs="0"/>
          <xs:element name="searchCriteriaUserLastName"        type="SearchCriteriaUserLastName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaUserFirstName"       type="SearchCriteriaUserFirstName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaDn"                  type="SearchCriteriaDn" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaEmailAddress"        type="SearchCriteriaEmailAddress" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaExactUserDepartment" type="SearchCriteriaExactUserDepartment" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDomainGetAssignedUserListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupDomainGetAssignedUserListRequest.
        The table columns are: "User Id", "Last Name", "First Name", "Department", "Phone Number", "Email Address",
        "Service Provider Id", "Group Id", "Hiragana Last Name" and "Hiragana First Name"
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="userTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDomainGetAssignedListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests the list of all domains assigned to a group.
        The response is either GroupDomainGetAssignedListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDomainGetAssignedListResponse">
    <xs:annotation>
      <xs:documentation>
        Contains a simple list of all group domain names.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="groupDefaultDomain" type="NetAddress"/>
          <xs:element name="domain" type="NetAddress" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupDomainUnassignListRequest">
    <xs:annotation>
      <xs:documentation>
        Unassign a list of domains from a group.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="domain" type="NetAddress" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupExistingUsersAssignUserServiceListRequest">
    <xs:annotation>
      <xs:documentation>
        Request to assign the user services and service packs to all existing users within the group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="serviceName" type="UserService" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="servicePackName" type="ServicePackName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupExistingUsersUnassignUserServiceListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests to unassign the user services and service packs for all existing users within the group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="serviceName" type="UserService" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="servicePackName" type="ServicePackName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupExtensionLengthGetRequest">
    <xs:annotation>
      <xs:documentation>
        Request the group's extension length.
        The response is either a GroupExtensionLengthGetResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

 <xs:complexType name="GroupExtensionLengthGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupExtensionLengthGetRequest.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="extensionLength" type="GroupExtensionLength"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupExtensionLengthModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify the group's extension length.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="extensionLength" type="GroupExtensionLength" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupFeatureAccessCodeGetRequest">
    <xs:annotation>
      <xs:documentation>
        Get group FAC code level and the list of feature access codes for a group.
        The response is either a GroupFeatureAccessCodeGetResponse or an ErrorResponse.
        Returned Feature Access Codes may be group specific, or Service Provider Feature Access Codes, depending on FAC code level.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupFeatureAccessCodeGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupFeatureAccessCodeGetRequest.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="useFeatureAccessCodeLevel" type="GroupFeatureAccessCodeLevel"/>
          <xs:element name="featureAccessCode" type="FeatureAccessCodeEntry" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupFeatureAccessCodeModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify group FAC code level and the list of feature access codes for a group.
        The response is either a SuccessResponse or an ErrorResponse.
        Note: choice element is only valid when useFeatureAccessCodeLevel is set to "Group", otherwise an ErrorResponse will be returned.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="useFeatureAccessCodeLevel" type="GroupFeatureAccessCodeLevel" minOccurs="0"/>
          <xs:choice>
            <xs:element name="restoreDefaultCodes" type="xs:boolean" fixed="true" minOccurs="0"/>
            <xs:element name="featureAccessCode" type="FeatureAccessCodeEntry" minOccurs="0" maxOccurs="unbounded"/>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupFileRepositoryDeviceUserAddRequest">
    <xs:annotation>
      <xs:documentation>
        Add a new group file repository user.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="fileRepositoryName" type="FileRepositoryName"/>
          <xs:element name="userName" type="FileRepositoryUserName"/>
          <xs:element name="password" type="FileRepositoryUserPassword"/>
          <xs:element name="allowPut" type="xs:boolean"/>
          <xs:element name="allowDelete" type="xs:boolean"/>
          <xs:element name="allowGet" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupFileRepositoryDeviceUserDeleteRequest">
    <xs:annotation>
      <xs:documentation>
        Delete a group file repository user.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="fileRepositoryName" type="FileRepositoryName"/>
          <xs:element name="userName" type="FileRepositoryUserName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupFileRepositoryDeviceUserModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify a group file repository user.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="fileRepositoryName" type="FileRepositoryName"/>
          <xs:element name="userName" type="FileRepositoryUserName"/>
          <xs:element name="password" minOccurs="0" type="FileRepositoryUserPassword"/>
          <xs:element name="allowPut" type="xs:boolean" minOccurs="0"/>
          <xs:element name="allowDelete" type="xs:boolean" minOccurs="0"/>
          <xs:element name="allowGet" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupFileRepositoryDeviceUserGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Request the list of group users for a file repository in the system.
        The response is either a GroupFileRepositoryDeviceUserGetListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="fileRepositoryName" type="FileRepositoryName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupFileRepositoryDeviceUserGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupFileRepositoryDeviceUserGetListRequest.
        Contains a table with column headings : "User Name","Allow Delete","Allow Get","Allow Put" in a row for each file repository service provider user.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="fileRepositoryUserTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupGetDefaultRequest">
    <xs:annotation>
      <xs:documentation>
        Request the default profile for a group.
        The response is either a GroupGetDefaultResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupGetDefaultResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupGetDefaultRequest. All values are default values for a group's profile.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="defaultDomain" type="NetAddress"/>
          <xs:element name="userLimit" type="GroupUserLimit"/>
          <xs:element name="timeZone" type="TimeZone"/>
          <xs:element name="timeZoneDisplayName" type="TimeZoneDisplayName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupGetListInServiceProviderRequest">
    <xs:annotation>
      <xs:documentation>
        Request the list of groups in a service provider or enterprise.
        It is possible to search by various criteria to restrict the number of rows returned.
        Multiple search criteria are logically ANDed together.
        The response is either a GroupGetListInServiceProviderResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="responseSizeLimit" type="ResponseSizeLimit" minOccurs="0"/>
          <xs:element name="searchCriteriaGroupId"   type="SearchCriteriaGroupId" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaGroupName" type="SearchCriteriaGroupName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupGetListInServiceProviderResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupGetListInServiceProviderRequest.
        Contains a 3 column table with column headings: "Group Id", "Group Name", "User Limit"
        and a row for each group.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="groupTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupGetListInSystemRequest">
    <xs:annotation>
      <xs:documentation>
        Request the list of groups in the system.
        It is possible to search by various criteria to restrict the number of rows returned.
        Multiple search criteria are logically ANDed together.
        The response is either a GroupGetListInSystemResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="responseSizeLimit" type="ResponseSizeLimit" minOccurs="0"/>
          <xs:element name="searchCriteriaGroupId"   type="SearchCriteriaGroupId" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaGroupName" type="SearchCriteriaGroupName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaExactServiceProvider" type="SearchCriteriaExactServiceProvider" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupGetListInSystemResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupGetListInSystemRequest.
        Contains a table with column headings: "Group Id", "Group Name", "User Limit", "Organization Id", "Organization Type"
        and a row for each group.
        The "Organization Id" column is populated with either a service provider Id or an enterprise Id.
        The "Organization Type" column is populated with one of the enumerated strings defined in the
        OrganizationType OCI data type.  Please see OCISchemaDataTypes.xsd for details on OrganizationType.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="groupTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

 <xs:complexType name="GroupGetRequest14sp7">
    <xs:annotation>
      <xs:documentation>
        Get the profile for a group.
        The response is either a GroupGetResponse14sp7 or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupGetResponse14sp7">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupGetRequest14sp7.
        The response contains the group's profile information.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="defaultDomain" type="NetAddress"/>
          <xs:element name="userLimit" type="GroupUserLimit"/>
          <xs:element name="userCount" type="xs:int"/>
          <xs:element name="groupName" type="GroupName" minOccurs="0"/>
          <xs:element name="callingLineIdName" type="GroupCallingLineIdName" minOccurs="0"/>
          <xs:element name="callingLineIdPhoneNumber" type="DN"  minOccurs="0"/>
          <xs:element name="callingLineIdDisplayPhoneNumber" type="DN"  minOccurs="0"/>
          <xs:element name="timeZone" type="TimeZone"/>
          <xs:element name="timeZoneDisplayName" type="TimeZoneDisplayName"/>
          <xs:element name="locationDialingCode" type="LocationDialingCode" minOccurs="0"/>
          <xs:element name="contact" type="Contact" minOccurs="0"/>
          <xs:element name="address" type="StreetAddress" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupGetUserServiceAssignedUserListRequest">
    <xs:annotation>
      <xs:documentation>
        Get the list of users assigned the user service or service pack.
        The response is either a GroupGetUserServiceAssignedUserListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:choice>
            <xs:element name="serviceName" type="UserService"/>
            <xs:element name="servicePackName" type="ServicePackName"/>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupGetUserServiceAssignedUserListResponse">
    <xs:annotation>
      <xs:documentation>
        Return a table containing the list of users assigned the user service
        or service pack.  The table contains columns: "User Id", "Last Name",
        "First Name", "Department", "Phone Number", "Email Address", "Hiragana Last Name";
        "Hiragana First Name"
        This is a response to the GroupGetUserServiceAssignedUserListRequest.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="userListTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupHolidayScheduleAddRequest">
    <xs:annotation>
      <xs:documentation>
        Add a holiday schedule to a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="holidayScheduleName" type="HolidayScheduleName"/>
          <xs:element name="holiday01" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday02" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday03" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday04" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday05" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday06" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday07" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday08" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday09" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday10" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday11" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday12" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday13" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday14" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday15" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday16" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday17" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday18" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday19" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday20" type="Holiday" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupHolidayScheduleDeleteRequest">
    <xs:annotation>
      <xs:documentation>
        Delete a holiday schedule from a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="holidayScheduleName" type="HolidayScheduleName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupHolidayScheduleGetRequest">
    <xs:annotation>
      <xs:documentation>
        Get a holiday schedule in a group.
        The response is either a GroupHolidayScheduleGetResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="holidayScheduleName" type="HolidayScheduleName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupHolidayScheduleGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupHolidayScheduleGetRequest.
        The response contains the group's holiday schedule information.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="holidayScheduleName" type="HolidayScheduleName"/>
          <xs:element name="holiday01" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday02" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday03" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday04" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday05" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday06" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday07" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday08" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday09" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday10" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday11" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday12" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday13" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday14" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday15" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday16" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday17" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday18" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday19" type="Holiday" minOccurs="0"/>
          <xs:element name="holiday20" type="Holiday" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupHolidayScheduleGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Get a holiday schedule in a group.
        The response is either a GroupHolidayScheduleGetListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupHolidayScheduleGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupHolidayScheduleGetListRequest.
        The response contains all the group's holiday schedule name.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="holidayScheduleName" type="HolidayScheduleName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupHolidayScheduleModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify a holiday schedule in a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="holidayScheduleName" type="HolidayScheduleName"/>
          <xs:element name="newHolidayScheduleName" type="HolidayScheduleName" minOccurs="0"/>
          <xs:element name="holiday01" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday02" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday03" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday04" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday05" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday06" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday07" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday08" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday09" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday10" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday11" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday12" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday13" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday14" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday15" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday16" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday17" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday18" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday19" type="Holiday" minOccurs="0" nillable="true"/>
          <xs:element name="holiday20" type="Holiday" minOccurs="0" nillable="true"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify the profile for a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="defaultDomain" type="NetAddress" minOccurs="0"/>
          <xs:element name="userLimit" type="GroupUserLimit" minOccurs="0"/>
          <xs:element name="groupName" type="GroupName" nillable="true" minOccurs="0"/>
          <xs:element name="callingLineIdName" type="GroupCallingLineIdName" nillable="true" minOccurs="0"/>
          <xs:element name="callingLineIdPhoneNumber" type="DN"  nillable="true" minOccurs="0"/>
          <xs:element name="timeZone" type="TimeZone" minOccurs="0"/>
          <xs:element name="locationDialingCode" type="LocationDialingCode" nillable="true" minOccurs="0"/>
          <xs:element name="contact" type="Contact" minOccurs="0"/>
          <xs:element name="address" type="StreetAddress" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupNetworkClassOfServiceAssignListRequest">
    <xs:annotation>
      <xs:documentation>
        Assign a list of Network Classes of Service to a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="networkClassOfService" type="NetworkClassOfServiceName" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupNetworkClassOfServiceAssignToAllUsersRequest">
    <xs:annotation>
      <xs:documentation>
        Assign a Network Classes of Service to all users with in a 
        group. The Network Classes of Service must be currently assigned to 
        the group. 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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="networkClassOfService" type="NetworkClassOfServiceName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupNetworkClassOfServiceGetAssignedListRequest">
    <xs:annotation>
      <xs:documentation>
        Get a list of Network Classes of Service assigned to a group.
        The response is either a GroupNetworkClassOfServiceGetAssignedListResponse 
        or an ErorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupNetworkClassOfServiceGetAssignedListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupNetworkClassOfServiceGetAssignedListRequest.
        Contains a table of all Network Classes of Service assigned to
        the group. The column headings are: "Name" and "Description".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="networkClassOfServiceTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupNetworkClassOfServiceGetAssignedUserListRequest">
    <xs:annotation>
      <xs:documentation>
        Get a list of users within a group that have a given Network Class
        of Service assigned.
        The response is either a GroupNetworkClassOfServiceGetAssignedUserListResponse 
        or an ErorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="networkClassOfService" type="NetworkClassOfServiceName"/>
          <xs:element name="responseSizeLimit" type="ResponseSizeLimit" minOccurs="0"/>
          <xs:element name="searchCriteriaUserLastName" type="SearchCriteriaUserLastName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaUserFirstName" type="SearchCriteriaUserFirstName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaDn" type="SearchCriteriaDn" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaEmailAddress" type="SearchCriteriaEmailAddress" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaExactUserDepartment" type="SearchCriteriaExactUserDepartment" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupNetworkClassOfServiceGetAssignedUserListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupNetworkClassOfServiceGetAssignedUserListRequest.
        Contains a table of users that have the Network Class of Service 
        assigned. The column headings are: "User Id", "User Type", "Last Name", "First Name",
        "Department", "Phone Number", "Email Address", "Service Provider Id", 
        "Group Id", "Hiragana Last Name" and "Hiragana First Name".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="userTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupNetworkClassOfServiceUnassignListRequest">
    <xs:annotation>
      <xs:documentation>
        Unassign a list of Network Classes of Service from a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="networkClassOfService" type="NetworkClassOfServiceName" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupNewUserTemplateAssignUserServiceListRequest">
    <xs:annotation>
      <xs:documentation>
        Request to assign the user services and service packs to all new users created within the group
        after the completion of this request.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="serviceName" type="UserService" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="servicePackName" type="ServicePackName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupNewUserTemplateUnassignUserServiceListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests to unassign the user services and service packs for all new users created within the group
        after the completion of this request.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="serviceName" type="UserService" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="servicePackName" type="ServicePackName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPasswordRulesGetRequest16">
    <xs:annotation>
      <xs:documentation>
        Requests the group's password rules setting that is applicable to
        users within the group.
        The response is either GroupPasswordRulesGetResponse16 or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPasswordRulesGetResponse16">
    <xs:annotation>
      <xs:documentation>
        Response to GroupPasswordRulesGetRequest16.
        Contains the password rules applicable to users within the group.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="disallowUserId" type="xs:boolean"/>
          <xs:element name="disallowOldPassword" type="xs:boolean"/>
          <xs:element name="disallowReversedOldPassword" type="xs:boolean"/>
          <xs:element name="restrictMinDigits" type="xs:boolean"/>
          <xs:element name="minDigits" type="PasswordMinDigits"/>
          <xs:element name="restrictMinUpperCaseLetters" type="xs:boolean"/>
          <xs:element name="minUpperCaseLetters" type="PasswordMinUpperCaseLetters"/>
          <xs:element name="restrictMinLowerCaseLetters" type="xs:boolean"/>
          <xs:element name="minLowerCaseLetters" type="PasswordMinLowerCaseLetters"/>
          <xs:element name="restrictMinNonAlphanumericCharacters" type="xs:boolean"/>
          <xs:element name="minNonAlphanumericCharacters" type="PasswordMinNonAlphanumericCharacters"/>
          <xs:element name="minLength" type="PasswordMinLength"/>
          <xs:element name="maxFailedLoginAttempts" type="MaxFailedLoginAttempts"/>
          <xs:element name="passwordExpiresDays" type="PasswordExpiresDays"/>
          <xs:element name="sendLoginDisabledNotifyEmail" type="xs:boolean"/>
          <xs:element name="loginDisabledNotifyEmailAddress" type="EmailAddress" minOccurs="0"/>
          <xs:element name="disallowRulesModification" type="xs:boolean"/>
          <xs:element name="disallowPreviousPasswords" type="xs:boolean"/>
          <xs:element name="numberOfPreviousPasswords" type="PasswordHistoryCount"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPasswordRulesModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Request to modify the group's password rules setting that apply to the
        users within the group. The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="disallowUserId" type="xs:boolean" minOccurs="0"/>
          <xs:element name="disallowOldPassword" type="xs:boolean" minOccurs="0"/>
          <xs:element name="disallowReversedOldPassword" type="xs:boolean" minOccurs="0"/>
          <xs:element name="restrictMinDigits" type="xs:boolean" minOccurs="0"/>
          <xs:element name="minDigits" type="PasswordMinDigits" minOccurs="0"/>
          <xs:element name="restrictMinUpperCaseLetters" type="xs:boolean" minOccurs="0"/>
          <xs:element name="minUpperCaseLetters" type="PasswordMinUpperCaseLetters" minOccurs="0"/>
          <xs:element name="restrictMinLowerCaseLetters" type="xs:boolean" minOccurs="0"/>
          <xs:element name="minLowerCaseLetters" type="PasswordMinLowerCaseLetters" minOccurs="0"/>
          <xs:element name="restrictMinNonAlphanumericCharacters" type="xs:boolean" minOccurs="0"/>
          <xs:element name="minNonAlphanumericCharacters" type="PasswordMinNonAlphanumericCharacters" minOccurs="0"/>
          <xs:element name="minLength" type="PasswordMinLength" minOccurs="0"/>
          <xs:element name="maxFailedLoginAttempts" type="MaxFailedLoginAttempts" minOccurs="0"/>
          <xs:element name="passwordExpiresDays" type="PasswordExpiresDays" minOccurs="0"/>
          <xs:element name="sendLoginDisabledNotifyEmail" type="xs:boolean" minOccurs="0"/>
          <xs:element name="loginDisabledNotifyEmailAddress" type="EmailAddress" nillable="true" minOccurs="0"/>
          <xs:element name="disallowPreviousPasswords" type="xs:boolean" minOccurs="0"/>
          <xs:element name="numberOfPreviousPasswords" type="PasswordHistoryCount" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPhoneDirectoryGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Request a table containing the phone directory for a group.
        If the specified group is part of an enterprise, the directory includes all users in the enterprise
        and all entries in the enterprise common phone list and the common phone list of the specified group.
        If the specified group is part of a service provider, the directory includes all users in the group
        and all entries in the common phone list of the specified group.
        It is possible to search by various criteria to restrict the number of rows returned.
        Multiple search criteria are logically ANDed together.
        The response is either GroupPhoneDirectoryGetListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="isExtendedInfoRequested" type="xs:boolean"/>
          <xs:element name="responseSizeLimit" type="ResponseSizeLimit" minOccurs="0"/>
          <xs:element name="searchCriteriaUserLastName"        type="SearchCriteriaUserLastName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaUserFirstName"       type="SearchCriteriaUserFirstName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaDn"                  type="SearchCriteriaDn" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaGroupLocationCode"   type="SearchCriteriaGroupLocationCode" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaExtension"           type="SearchCriteriaExtension" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaMobilePhoneNumber"   type="SearchCriteriaMobilePhoneNumber" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaEmailAddress"        type="SearchCriteriaEmailAddress" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaYahooId"             type="SearchCriteriaYahooId" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="searchCriteriaExactUserGroup"      type="SearchCriteriaExactUserGroup" minOccurs="0"/>
          <xs:element name="searchCriteriaExactUserDepartment" type="SearchCriteriaExactUserDepartment" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPhoneDirectoryGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupPhoneDirectoryGetListRequest.
        Contains a table with  a row for each phone number and column headings :
        "Name", "Number", "Extension", "Mobile", "Email Address", "Department", "Hiragana Name", "Group Id", "Yahoo Id".
        If extended directory information is requested, the following columns are also included:
        "First Name", "Last Name", "User Id", "Pager", "Title", "Time Zone", "Location", "Address Line 1", "Address Line 2",
        "City", "State", "Zip", "Country".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="directoryTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPolicyGetRequest14sp4">
    <xs:annotation>
      <xs:documentation>
        Requests the Group's policy settings.
        The response is either GroupPolicyGetResponse14sp1 or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupPolicyGetResponse14sp4">
      <xs:annotation>
        <xs:documentation>
          Response to GroupPolicyGetRequest14sp4.
          Contains the policy settings for the group.
        </xs:documentation>
      </xs:annotation>
      <xs:complexContent>
        <xs:extension base="core:OCIDataResponse">
          <xs:sequence>
            <xs:element name="callingPlanAccess" type="GroupCallingPlanAccess"/>
            <xs:element name="extensionAccess" type="GroupExtensionAccess"/>
            <xs:element name="ldapIntegrationAccess" type="GroupLDAPIntegrationAccess"/>
            <xs:element name="voiceMessagingAccess" type="GroupVoiceMessagingAccess"/>
            <xs:element name="departmentAdminUserAccess" type="GroupDepartmentAdminUserAccess"/>
            <xs:element name="departmentAdminTrunkGroupAccess" type="GroupDepartmentAdminTrunkGroupAccess"/>
            <xs:element name="userAuthenticationAccess" type="GroupUserAuthenticationAccess"/>
            <xs:element name="userGroupDirectoryAccess" type="GroupUserGroupDirectoryAccess"/>
            <xs:element name="userProfileAccess" type="GroupUserProfileAccess"/>
            <xs:element name="userEnhancedCallLogAccess" type="GroupUserCallLogAccess"/>
          </xs:sequence>
        </xs:extension>
      </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPolicyModifyRequest">
      <xs:annotation>
        <xs:documentation>
          Request to modify the policies for a Group.
          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="serviceProviderId" type="ServiceProviderId"/>
            <xs:element name="groupId" type="GroupId"/>
            <xs:element name="callingPlanAccess" type="GroupCallingPlanAccess" minOccurs="0"/>
            <xs:element name="extensionAccess" type="GroupExtensionAccess" minOccurs="0"/>
            <xs:element name="ldapIntegrationAccess" type="GroupLDAPIntegrationAccess" minOccurs="0"/>
            <xs:element name="voiceMessagingAccess" type="GroupVoiceMessagingAccess" minOccurs="0"/>
            <xs:element name="departmentAdminUserAccess" type="GroupDepartmentAdminUserAccess" minOccurs="0"/>
            <xs:element name="departmentAdminTrunkGroupAccess" type="GroupDepartmentAdminTrunkGroupAccess" minOccurs="0"/>
            <xs:element name="userAuthenticationAccess" type="GroupUserAuthenticationAccess" minOccurs="0"/>
            <xs:element name="userGroupDirectoryAccess" type="GroupUserGroupDirectoryAccess" minOccurs="0"/>
            <xs:element name="userProfileAccess" type="GroupUserProfileAccess" minOccurs="0"/>
            <xs:element name="userEnhancedCallLogAccess" type="GroupUserCallLogAccess" minOccurs="0"/>
          </xs:sequence>
        </xs:extension>
      </xs:complexContent>
  </xs:complexType>


  <xs:complexType name="GroupServiceGetAuthorizationListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests the group's service authorization status.
        The response is either GroupServiceGetAuthorizationListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupServiceGetAuthorizationListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupServiceGetAuthorizationListRequest.
        Contains three tables, one for the service packs, one for the group services, and one for
        the user services.
        The user table has the following column headings:
          "Service Name", "Authorized", "Assigned", "Limited", "Quantity", "Usage", "Licensed", "Allowed", "User Assignable", "Group Service Assignable".
        The group service table has the following column headings:
          "Service Name", "Authorized", "Assigned", "Limited", "Quantity", "Usage", "Licensed", "Allowed".
        The service pack table's column headings are:
          "Service Pack Name", "Authorized", "Assigned", "Limited", "Allocated", "Allowed", "Usage", "Description".
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="servicePacksAuthorizationTable" type="core:OCITable"/>
          <xs:element name="groupServicesAuthorizationTable" type="core:OCITable"/>
          <xs:element name="userServicesAuthorizationTable" type="core:OCITable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupServiceGetAuthorizedListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests the list of services and service packs authorized to a group.
        The response is either GroupServiceGetAuthorizedListResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupServiceGetAuthorizedListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupServiceGetAuthorizedListRequest.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="servicePackName" type="ServicePackName" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="groupServiceName" type="GroupService" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="userServiceName" type="UserService" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupServiceModifyAuthorizationListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests to change the group's service authorization status.
        The boolean flags are used to authorize or unauthorize services and packs.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="servicePackAuthorization" type="ServicePackAuthorization" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="groupServiceAuthorization" type="GroupServiceAuthorization" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="userServiceAuthorization" type="UserServiceAuthorization" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPortalPasscodeRulesGetRequest">
    <xs:annotation>
      <xs:documentation>
        Requests the group's passcode rules setting.
        The response is either GroupPortalPasscodeRulesGetResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPortalPasscodeRulesGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupPortalPasscodeRulesGetRequest.
        Contains the group's passcode rules setting.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="useRuleLevel" type="GroupPasscodeRulesLevel"/>
          <xs:element name="disallowRepeatedDigits" type="xs:boolean"/>
          <xs:element name="disallowUserNumber" type="xs:boolean"/>
          <xs:element name="disallowReversedUserNumber" type="xs:boolean"/>
          <xs:element name="disallowOldPasscode" type="xs:boolean"/>
          <xs:element name="disallowReversedOldPasscode" type="xs:boolean"/>
          <xs:element name="minCodeLength" type="PasscodeMinLength"/>
          <xs:element name="maxCodeLength" type="PasscodeMaxLength"/>
          <xs:element name="disableLoginAfterMaxFailedLoginAttempts" type="xs:boolean"/>
          <xs:element name="maxFailedLoginAttempts" type="PortalMaxFailedLoginAttempts" minOccurs="0"/>
          <xs:element name="expirePassword" type="xs:boolean"/>
          <xs:element name="passcodeExpiresDays" type="PasscodeExpiresDays" minOccurs="0"/>
          <xs:element name="sendLoginDisabledNotifyEmail" type="xs:boolean"/>
          <xs:element name="loginDisabledNotifyEmailAddress" type="EmailAddress" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupPortalPasscodeRulesModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Request to modify the group's passcode rules setting.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="useRuleLevel" type="GroupPasscodeRulesLevel" minOccurs="0"/>
          <xs:element name="disallowRepeatedDigits" type="xs:boolean" minOccurs="0"/>
          <xs:element name="disallowUserNumber" type="xs:boolean" minOccurs="0"/>
          <xs:element name="disallowReversedUserNumber" type="xs:boolean" minOccurs="0"/>
          <xs:element name="disallowOldPasscode" type="xs:boolean" minOccurs="0"/>
          <xs:element name="disallowReversedOldPasscode" type="xs:boolean" minOccurs="0"/>
          <xs:element name="minCodeLength" type="PasscodeMinLength" minOccurs="0"/>
          <xs:element name="maxCodeLength" type="PasscodeMaxLength" minOccurs="0"/>
          <xs:element name="disableLoginAfterMaxFailedLoginAttempts" type="xs:boolean" minOccurs="0"/>
          <xs:element name="maxFailedLoginAttempts" type="PortalMaxFailedLoginAttempts" minOccurs="0"/>
          <xs:element name="expirePassword" type="xs:boolean" minOccurs="0"/>
          <xs:element name="passcodeExpiresDays" type="PasscodeExpiresDays" minOccurs="0"/>
          <xs:element name="sendLoginDisabledNotifyEmail" type="xs:boolean" minOccurs="0"/>
          <xs:element name="loginDisabledNotifyEmailAddress" type="EmailAddress" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupRoutingProfileGetRequest">
    <xs:annotation>
      <xs:documentation>
        Request the routing profile for the group.
        The response is either a GroupRoutingProfileGetResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
        <xs:element name="serviceProviderId" type="ServiceProviderId"/>
        <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupRoutingProfileGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupRoutingProfileGetRequest.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="routingProfile" type="RoutingProfile" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupRoutingProfileModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Requests to modify the routing profile for a group.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="routingProfile" type="RoutingProfile" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="GroupServiceAssignListRequest">
    <xs:annotation>
      <xs:documentation>
        Assign one or more group services to the group.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="serviceName" type="GroupService" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupServiceIsAssignedRequest">
    <xs:annotation>
      <xs:documentation>
        Request to determine if a GroupService is assigned to the group.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="serviceName" type="GroupService"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupServiceIsAssignedResponse">
    <xs:annotation>
      <xs:documentation>
        Returns true if the GroupService is assigned, otherwise false.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="isAssigned" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupServiceUnassignListRequest">
    <xs:annotation>
      <xs:documentation>
        Unassign one or more of the group's assigned services.
        The response is either SuccessResponse or ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="serviceName" type="GroupService" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupShInterfaceGetUserListRequest">
    <xs:annotation>
      <xs:documentation>
        Returns a list of all Public User Identities and associated data in a group.
        The response is either a GroupShInterfaceGetUserListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupShInterfaceGetUserListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupShInterfaceGetUserListRequest.
        The response contains the Sh Non Transparent data and associated Public User Identity
        information for every Public User Identity in the group.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="entry" type="ShInterfaceUserListEntry" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupTimeScheduleAddRequest">
    <xs:annotation>
      <xs:documentation>
        Add a time schedule to a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="timeScheduleName" type="TimeScheduleName"/>
          <xs:element name="timeInterval01" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval02" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval03" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval04" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval05" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval06" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval07" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval08" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval09" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval10" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval11" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval12" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval13" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval14" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval15" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval16" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval17" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval18" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval19" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval20" type="TimeInterval" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupTimeScheduleDeleteRequest">
    <xs:annotation>
      <xs:documentation>
        Delete a time schedule from a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="timeScheduleName" type="TimeScheduleName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupTimeScheduleGetListRequest">
    <xs:annotation>
      <xs:documentation>
        Request a list of all time schedules in a group.
        The response is either a GroupTimeScheduleGetListResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupTimeScheduleGetListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupTimeScheduleGetListRequest.
        The response contains all the group's time schedule name.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="timeSchedule" type="TimeScheduleName" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupTimeScheduleGetRequest">
    <xs:annotation>
      <xs:documentation>
        Request to get a group time schedule.
        The response is either a GroupTimeScheduleGetResponse or an ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="timeScheduleName" type="TimeScheduleName"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupTimeScheduleGetResponse">
    <xs:annotation>
      <xs:documentation>
        Response to the GroupTimeScheduleGetRequest.
        The response contains the group's time schedule information.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="timeScheduleName" type="TimeScheduleName"/>
          <xs:element name="timeInterval01" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval02" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval03" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval04" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval05" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval06" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval07" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval08" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval09" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval10" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval11" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval12" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval13" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval14" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval15" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval16" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval17" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval18" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval19" type="TimeInterval" minOccurs="0"/>
          <xs:element name="timeInterval20" type="TimeInterval" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupTimeScheduleModifyRequest">
    <xs:annotation>
      <xs:documentation>
        Modify a specified time schedule in a group.
        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="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
          <xs:element name="timeScheduleName" type="TimeScheduleName"/>
          <xs:element name="newTimeScheduleName" type="TimeScheduleName" minOccurs="0"/>
          <xs:element name="timeInterval01" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval02" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval03" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval04" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval05" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval06" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval07" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval08" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval09" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval10" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval11" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval12" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval13" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval14" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval15" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval16" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval17" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval18" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval19" type="TimeInterval" nillable="true" minOccurs="0"/>
          <xs:element name="timeInterval20" type="TimeInterval" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupTrunkGroupGetAvailableDetailListRequest">
    <xs:annotation>
      <xs:documentation>
        Requests the list of available trunk groups within a group.
        The response is either GroupTrunkGroupGetAvailableDetailListResponse or
        ErrorResponse.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIRequest">
        <xs:sequence>
          <xs:element name="serviceProviderId" type="ServiceProviderId"/>
          <xs:element name="groupId" type="GroupId"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="GroupTrunkGroupGetAvailableDetailListResponse">
    <xs:annotation>
      <xs:documentation>
        Response to GroupTrunkGroupGetAvailableDetailListRequest.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="core:OCIDataResponse">
        <xs:sequence>
          <xs:element name="trunkGroup" minOccurs="0" maxOccurs="unbounded">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="name" type="TrunkGroupDeviceName"/>
                <xs:element name="staticRegistrationCapable" type="xs:boolean"/>
                <xs:element name="useDomain" type="xs:boolean"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


  <!-- ******************************************************************** -->
  <!-- M E S S A G E   P A R A M E T E R S                                  -->
  <!-- ******************************************************************** -->
  <!--
  The group-specific non-primitive attributes are listed here in alphabetical order.
  -->

  <xs:simpleType name="GroupDialPlanPolicySettingLevel">
    <xs:annotation>
      <xs:documentation>
        Choices for the group Dial Plan Policy to decide which type of settings shall be used.
        Notes: Choice cannot be 'sp' or 'group' if Service Provider or group does not have
        public digit map set.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="System"/>
      <xs:enumeration value="Service Provider"/>
      <xs:enumeration value="Group"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="GroupDigitCollectionSettingLevel">
    <xs:annotation>
      <xs:documentation>
        Choices for the group digit collection feature to decide which type of settings to use.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="System"/>
      <xs:enumeration value="Service Provider"/>
      <xs:enumeration value="Group"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="GroupExtensionLength">
    <xs:annotation>
      <xs:documentation>
        The group's extension length.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:int">
      <xs:minInclusive value="2"/>
      <xs:maxInclusive value="6"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="GroupFeatureAccessCodeLevel">
    <xs:annotation>
      <xs:documentation>
        Feature Access Code Level defining group policy how Feature Access Codes will be used by a group.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="Service Provider"/>
      <xs:enumeration value="Group"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="GroupUserLimit">
    <xs:annotation>
      <xs:documentation>
        Configured maximum number of users in a group.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:int">
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="999999"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ShInterfaceUserListEntry">
    <xs:annotation>
      <xs:documentation>
        ShInterface User List Entry.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="userId" type="UserId"/>
      <xs:element name="userType" type="UserType"/>
      <xs:element name="publicUserIdentity" type="PublicUserIdentity"/>
      <xs:element name="endpointType" type="EndpointType"/>
      <xs:element name="SCSCFName" type="SIPURI" minOccurs="0"/>
      <xs:element name="IMSUserState" type="IMSUserState"/>
    </xs:sequence>
  </xs:complexType>

</xs:schema>
