"""Broadworks OCI-P Interface Request Classes"""
# Autogenerated from the Broadworks XML Schemas.
# Do not edit as changes will be overwritten.
# Generated on 2020-10-19T17:35:53.953786
# fmt: off
from typing import List

from classforge import Field

import broadworks_ocip.types as OCI
from .base import ElementInfo as E
from .base import OCIRequest


class AuthenticationRequest(OCIRequest):
    """
    ``AuthenticationRequest()`` is 1st stage of the 2 stage OCI login process.


    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class AuthenticationVerifyRequest(OCIRequest):
    """
    ``AuthenticationVerifyRequest()`` is used to authenticate a user using the user Id and
    password.

    The response is a ``AuthenticationVerifyResponse()`` or an ``ErrorResponse()``

    Replaced By: ``AuthenticationVerifyRequest14sp8()``

    Attributes:
        user_id: userId
        password: password
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("password", "password", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    password: str = Field(type=str, required=True, mutable=False)


class AuthenticationVerifyRequest14sp8(OCIRequest):
    """
    ``AuthenticationVerifyRequest14sp8()`` is used to authenticate a user either by
    userId/password, userId/sip username/sip password, dn/passcode or a token previously
    authorized with the ``ExternalAuthenticationAuthorizeTokenRequest()``.

    The phone number may be any DN associated with a user.

    The response is a ``AuthenticationVerifyResponse14sp8()`` or an ``ErrorResponse()``

    Attributes:
        user_id: userId
        password: password
        phone_number: phoneNumber
        passcode: passcode
        login_token: loginToken
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("password", "password", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("passcode", "passcode", str, is_required=True),
        E("login_token", "loginToken", str, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str, is_required=True),
        E("sip_authentication_password", "sipAuthenticationPassword", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    password: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    passcode: str = Field(type=str, required=True, mutable=False)
    login_token: str = Field(type=str, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=True, mutable=False)
    sip_authentication_password: str = Field(type=str, required=True, mutable=False)


class AvailabilityTestRequest(OCIRequest):
    """
    ``AvailabilityTestRequest()`` is for high-availability support.

    Response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class DeviceManagementFileAuthLocationGetRequest(OCIRequest):
    """
    Get the address and credentials of the File Repository hosting the requested access
    device file.

    Also get the file name and path on the File Repository.

    The response is either a ``DeviceManagementFileAuthLocationGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        device_access_protocol: deviceAccessProtocol
        device_access_method: deviceAccessMethod
        device_access_uri: deviceAccessURI
        access_device_user_name: accessDeviceUserName
        access_device_user_password: accessDeviceUserPassword
        signed_password: signedPassword
        mac_address: macAddress
        realm_name: realmName
        digest_ha1_complement: digestHa1Complement
        digest_response: digestResponse
    """

    _ELEMENTS = (
        E("device_access_protocol", "deviceAccessProtocol", str, is_required=True),
        E("device_access_method", "deviceAccessMethod", str, is_required=True),
        E("device_access_uri", "deviceAccessURI", str, is_required=True),
        E("access_device_user_name", "accessDeviceUserName", str),
        E("access_device_user_password", "accessDeviceUserPassword", str),
        E("signed_password", "signedPassword", str),
        E("mac_address", "macAddress", str),
        E("realm_name", "realmName", str),
        E("digest_ha1_complement", "digestHa1Complement", str),
        E("digest_response", "digestResponse", str),
    )

    device_access_protocol: str = Field(type=str, required=True, mutable=False)
    device_access_method: str = Field(type=str, required=True, mutable=False)
    device_access_uri: str = Field(type=str, required=True, mutable=False)
    access_device_user_name: str = Field(type=str, required=False, mutable=False)
    access_device_user_password: str = Field(type=str, required=False, mutable=False)
    signed_password: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    realm_name: str = Field(type=str, required=False, mutable=False)
    digest_ha1_complement: str = Field(type=str, required=False, mutable=False)
    digest_response: str = Field(type=str, required=False, mutable=False)


class DeviceManagementFileAuthLocationGetRequest17(OCIRequest):
    """
    Get the address and credentials of the File Repository hosting the requested access
    device file.

    Also get the file name and path on the File Repository.

    The response is either a ``DeviceManagementFileAuthLocationGetResponse17()`` or an
    ``ErrorResponse()``. Replaced by: ``DeviceManagementFileAuthLocationGetRequest18()``

    Attributes:
        device_access_protocol: deviceAccessProtocol
        device_access_method: deviceAccessMethod
        device_access_uri: deviceAccessURI
        access_device_user_name: accessDeviceUserName
        access_device_user_password: accessDeviceUserPassword
        signed_password: signedPassword
        mac_address: macAddress
        realm_name: realmName
        digest_ha1_complement: digestHa1Complement
        digest_response: digestResponse
    """

    _ELEMENTS = (
        E("device_access_protocol", "deviceAccessProtocol", str, is_required=True),
        E("device_access_method", "deviceAccessMethod", str, is_required=True),
        E("device_access_uri", "deviceAccessURI", str, is_required=True),
        E("access_device_user_name", "accessDeviceUserName", str),
        E("access_device_user_password", "accessDeviceUserPassword", str),
        E("signed_password", "signedPassword", str),
        E("mac_address", "macAddress", str),
        E("realm_name", "realmName", str),
        E("digest_ha1_complement", "digestHa1Complement", str),
        E("digest_response", "digestResponse", str),
    )

    device_access_protocol: str = Field(type=str, required=True, mutable=False)
    device_access_method: str = Field(type=str, required=True, mutable=False)
    device_access_uri: str = Field(type=str, required=True, mutable=False)
    access_device_user_name: str = Field(type=str, required=False, mutable=False)
    access_device_user_password: str = Field(type=str, required=False, mutable=False)
    signed_password: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    realm_name: str = Field(type=str, required=False, mutable=False)
    digest_ha1_complement: str = Field(type=str, required=False, mutable=False)
    digest_response: str = Field(type=str, required=False, mutable=False)


class DeviceManagementFileAuthLocationGetRequest18(OCIRequest):
    """
    Get the address and credentials of the File Repository hosting the requested access
    device file.

    Also get the file name and path on the File Repository.

    The response is either a ``DeviceManagementFileAuthLocationGetResponse18()`` or an
    ``ErrorResponse()``. Replaced by: ``DeviceManagementFileAuthLocationGetRequest21()``.

    Attributes:
        device_access_protocol: deviceAccessProtocol
        device_access_method: deviceAccessMethod
        device_access_uri: deviceAccessURI
        access_device_user_name: accessDeviceUserName
        access_device_user_password: accessDeviceUserPassword
        signed_password: signedPassword
        mac_address: macAddress
        realm_name: realmName
        digest_ha1_complement: digestHa1Complement
        digest_response: digestResponse
    """

    _ELEMENTS = (
        E("device_access_protocol", "deviceAccessProtocol", str, is_required=True),
        E("device_access_method", "deviceAccessMethod", str, is_required=True),
        E("device_access_uri", "deviceAccessURI", str, is_required=True),
        E("access_device_user_name", "accessDeviceUserName", str),
        E("access_device_user_password", "accessDeviceUserPassword", str),
        E("signed_password", "signedPassword", str),
        E("mac_address", "macAddress", str),
        E("realm_name", "realmName", str),
        E("digest_ha1_complement", "digestHa1Complement", str),
        E("digest_response", "digestResponse", str),
    )

    device_access_protocol: str = Field(type=str, required=True, mutable=False)
    device_access_method: str = Field(type=str, required=True, mutable=False)
    device_access_uri: str = Field(type=str, required=True, mutable=False)
    access_device_user_name: str = Field(type=str, required=False, mutable=False)
    access_device_user_password: str = Field(type=str, required=False, mutable=False)
    signed_password: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    realm_name: str = Field(type=str, required=False, mutable=False)
    digest_ha1_complement: str = Field(type=str, required=False, mutable=False)
    digest_response: str = Field(type=str, required=False, mutable=False)


class DeviceManagementFileAuthLocationGetRequest21(OCIRequest):
    """
    Get the address and credentials of the File Repository hosting the requested access
    device file.

    Also get the file name and path on the File Repository.

    The response is either ``DeviceManagementFileAuthLocationGetResponse21()`` or
    ``ErrorResponse()``. The following elements are only used in AS data mode and will
    fail in HSS data mode: deviceToken

    Attributes:
        device_access_protocol: deviceAccessProtocol
        device_access_method: deviceAccessMethod
        device_access_uri: deviceAccessURI
        access_device_user_name: accessDeviceUserName
        access_device_user_password: accessDeviceUserPassword
        device_token: deviceToken
        signed_password: signedPassword
        mac_address: macAddress
        realm_name: realmName
        digest_ha1_complement: digestHa1Complement
        digest_response: digestResponse
    """

    _ELEMENTS = (
        E("device_access_protocol", "deviceAccessProtocol", str, is_required=True),
        E("device_access_method", "deviceAccessMethod", str, is_required=True),
        E("device_access_uri", "deviceAccessURI", str, is_required=True),
        E("access_device_user_name", "accessDeviceUserName", str),
        E("access_device_user_password", "accessDeviceUserPassword", str),
        E("device_token", "deviceToken", str),
        E("signed_password", "signedPassword", str),
        E("mac_address", "macAddress", str),
        E("realm_name", "realmName", str),
        E("digest_ha1_complement", "digestHa1Complement", str),
        E("digest_response", "digestResponse", str),
    )

    device_access_protocol: str = Field(type=str, required=True, mutable=False)
    device_access_method: str = Field(type=str, required=True, mutable=False)
    device_access_uri: str = Field(type=str, required=True, mutable=False)
    access_device_user_name: str = Field(type=str, required=False, mutable=False)
    access_device_user_password: str = Field(type=str, required=False, mutable=False)
    device_token: str = Field(type=str, required=False, mutable=False)
    signed_password: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    realm_name: str = Field(type=str, required=False, mutable=False)
    digest_ha1_complement: str = Field(type=str, required=False, mutable=False)
    digest_response: str = Field(type=str, required=False, mutable=False)


class DeviceManagementPutFileRequest(OCIRequest):
    """
    Informs BroadWorks that a file was uploaded to the repository.

    The response is always a ``SuccessResponse()``.

    Attributes:
        device_access_uri: deviceAccessURI
        ip_address: ipAddress
    """

    _ELEMENTS = (
        E("device_access_uri", "deviceAccessURI", str, is_required=True),
        E("ip_address", "ipAddress", str, is_required=True),
    )

    device_access_uri: str = Field(type=str, required=True, mutable=False)
    ip_address: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerActivationRequest(OCIRequest):
    """
    Activates or Deactivates the BroadWorks Mobile Manager.

    The deactivationReason is required when isActive is set to false.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        is_active: isActive
        deactivation_reason: deactivationReason
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("deactivation_reason", "deactivationReason", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    deactivation_reason: str = Field(type=str, required=False, mutable=False)


class EnterpriseBroadWorksMobileManagerAddHomeZoneRequest(OCIRequest):
    """
    Add a home zone to the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        home_zone_domain_name: homeZoneDomainName
        mobile_country_code: mobileCountryCode
        mobile_network_code: mobileNetworkCode
        location_area_code: locationAreaCode
        cell_identity: cellIdentity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("home_zone_domain_name", "homeZoneDomainName", str, is_required=True),
        E("mobile_country_code", "mobileCountryCode", str, is_required=True),
        E("mobile_network_code", "mobileNetworkCode", str, is_required=True),
        E("location_area_code", "locationAreaCode", str, is_required=True),
        E("cell_identity", "cellIdentity", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    home_zone_domain_name: str = Field(type=str, required=True, mutable=False)
    mobile_country_code: str = Field(type=str, required=True, mutable=False)
    mobile_network_code: str = Field(type=str, required=True, mutable=False)
    location_area_code: str = Field(type=str, required=True, mutable=False)
    cell_identity: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerAddRequest(OCIRequest):
    """
    Add the BroadWorks Mobile Manager.

    Only one BroadWorks Mobile Manager can be added per enterprise.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        information_file: informationFile
        certificate_file: certificateFile
        is_active: isActive
        local_to_carrier: localToCarrier
        max_tx_per_second_enabled: maxTxPerSecondEnabled
        max_tx_per_second: maxTxPerSecond
        tldn_enabled: tldnEnabled
        generic_number_enabled: genericNumberEnabled
        mobile_state_check_enabled: mobileStateCheckEnabled
        location_based_services_enabled: locationBasedServicesEnabled
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("information_file", "informationFile", str, is_required=True),
        E("certificate_file", "certificateFile", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("local_to_carrier", "localToCarrier", bool, is_required=True),
        E("max_tx_per_second_enabled", "maxTxPerSecondEnabled", bool, is_required=True),
        E("max_tx_per_second", "maxTxPerSecond", int),
        E("tldn_enabled", "tldnEnabled", bool, is_required=True),
        E("generic_number_enabled", "genericNumberEnabled", bool, is_required=True),
        E("mobile_state_check_enabled", "mobileStateCheckEnabled", bool, is_required=True),
        E(
            "location_based_services_enabled", "locationBasedServicesEnabled", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    information_file: str = Field(type=str, required=True, mutable=False)
    certificate_file: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    local_to_carrier: bool = Field(type=bool, required=True, mutable=False)
    max_tx_per_second_enabled: bool = Field(type=bool, required=True, mutable=False)
    max_tx_per_second: int = Field(type=int, required=False, mutable=False)
    tldn_enabled: bool = Field(type=bool, required=True, mutable=False)
    generic_number_enabled: bool = Field(type=bool, required=True, mutable=False)
    mobile_state_check_enabled: bool = Field(type=bool, required=True, mutable=False)
    location_based_services_enabled: bool = Field(type=bool, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerDeleteHomeZoneListRequest(OCIRequest):
    """
    Delete a list of home zones from the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        home_zone_id: homeZoneId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("home_zone_id", "homeZoneId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    home_zone_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerDeleteHomeZoneRequest(OCIRequest):
    """
    Delete a home zone from the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        home_zone_id: homeZoneId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("home_zone_id", "homeZoneId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    home_zone_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerDeleteRequest(OCIRequest):
    """
    Delete the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerGetDomainListRequest(OCIRequest):
    """
    Get the list of domains of the BroadWorks Mobile Manager.

    The response is either ``EnterpriseBroadWorksMobileManagerGetDomainListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerGetHomeZoneListRequest(OCIRequest):
    """
    Get the list of home zones of the BroadWorks Mobile Manager.

    The response is either ``EnterpriseBroadWorksMobileManagerGetHomeZoneListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerGetHomeZoneRequest(OCIRequest):
    """
    Get a home zone from the BroadWorks Mobile Manager.

    The response is either ``EnterpriseBroadWorksMobileManagerGetHomeZoneResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        home_zone_id: homeZoneId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("home_zone_id", "homeZoneId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    home_zone_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerGetRequest(OCIRequest):
    """
    Get the BroadWorks Mobile Manager.

    The response is either ``EnterpriseBroadWorksMobileManagerGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobileManagerModifyHomeZoneRequest(OCIRequest):
    """
    Modify an existing home zone in the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        home_zone_id: homeZoneId
        home_zone_domain_name: homeZoneDomainName
        mobile_country_code: mobileCountryCode
        mobile_network_code: mobileNetworkCode
        location_area_code: locationAreaCode
        cell_identity: cellIdentity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("home_zone_id", "homeZoneId", str, is_required=True),
        E("home_zone_domain_name", "homeZoneDomainName", str),
        E("mobile_country_code", "mobileCountryCode", str),
        E("mobile_network_code", "mobileNetworkCode", str),
        E("location_area_code", "locationAreaCode", str),
        E("cell_identity", "cellIdentity", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    home_zone_id: str = Field(type=str, required=True, mutable=False)
    home_zone_domain_name: str = Field(type=str, required=False, mutable=False)
    mobile_country_code: str = Field(type=str, required=False, mutable=False)
    mobile_network_code: str = Field(type=str, required=False, mutable=False)
    location_area_code: str = Field(type=str, required=False, mutable=False)
    cell_identity: str = Field(type=str, required=False, mutable=False)


class EnterpriseBroadWorksMobileManagerModifyRequest(OCIRequest):
    """
    Modify the BroadWorks Mobile Manager settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        information_file: informationFile
        certificate_file: certificateFile
        local_to_carrier: localToCarrier
        max_tx_per_second_enabled: maxTxPerSecondEnabled
        max_tx_per_second: maxTxPerSecond
        tldn_enabled: tldnEnabled
        generic_number_enabled: genericNumberEnabled
        mobile_state_check_enabled: mobileStateCheckEnabled
        location_based_services_enabled: locationBasedServicesEnabled
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("information_file", "informationFile", str),
        E("certificate_file", "certificateFile", str),
        E("local_to_carrier", "localToCarrier", bool),
        E("max_tx_per_second_enabled", "maxTxPerSecondEnabled", bool),
        E("max_tx_per_second", "maxTxPerSecond", int),
        E("tldn_enabled", "tldnEnabled", bool),
        E("generic_number_enabled", "genericNumberEnabled", bool),
        E("mobile_state_check_enabled", "mobileStateCheckEnabled", bool),
        E("location_based_services_enabled", "locationBasedServicesEnabled", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    information_file: str = Field(type=str, required=False, mutable=False)
    certificate_file: str = Field(type=str, required=False, mutable=False)
    local_to_carrier: bool = Field(type=bool, required=False, mutable=False)
    max_tx_per_second_enabled: bool = Field(type=bool, required=False, mutable=False)
    max_tx_per_second: int = Field(type=int, required=False, mutable=False)
    tldn_enabled: bool = Field(type=bool, required=False, mutable=False)
    generic_number_enabled: bool = Field(type=bool, required=False, mutable=False)
    mobile_state_check_enabled: bool = Field(type=bool, required=False, mutable=False)
    location_based_services_enabled: bool = Field(type=bool, required=False, mutable=False)


class EnterpriseBroadWorksMobileManagerSendCarrierFilesRequest(OCIRequest):
    """
    Sends an email with the carrier information and certificate files.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        email_to: emailTo
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("email_to", "emailTo", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    email_to: str = Field(type=str, required=True, mutable=False)


class EnterpriseBroadWorksMobilityMobileSubscriberDirectoryNumberGetAvailableListRequest(OCIRequest):
    """
    Request a list of available Mobile Subscriber Directory Numbers not yet assigned to
    any user.

    The response is either
    ``EnterpriseBroadWorksMobilityMobileSubscriberDirectoryNumberGetAvailableListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentThresholdProfileAddAgentListRequest(OCIRequest):
    """
    Add agent(s) to a Agent Threshold Profile.

    When an agent is assigned (added) to a profile, it is automatically unassigned
    (deleted) from the previous profile it was assigned to.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        profile_name: profileName
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)
    agent_user_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentThresholdProfileAddRequest(OCIRequest):
    """
    Add a new Call Center Agent Threshold Profile in an Enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        profile_name: profileName
        profile_description: profileDescription
        threshold_current_call_state_idle_time_yellow:
            thresholdCurrentCallStateIdleTimeYellow
        threshold_current_call_state_idle_time_red: thresholdCurrentCallStateIdleTimeRed
        threshold_current_call_state_on_call_time_yellow:
            thresholdCurrentCallStateOnCallTimeYellow
        threshold_current_call_state_on_call_time_red:
            thresholdCurrentCallStateOnCallTimeRed
        threshold_current_agent_state_unavailable_time_yellow:
            thresholdCurrentAgentStateUnavailableTimeYellow
        threshold_current_agent_state_unavailable_time_red:
            thresholdCurrentAgentStateUnavailableTimeRed
        threshold_average_busy_in_time_yellow: thresholdAverageBusyInTimeYellow
        threshold_average_busy_in_time_red: thresholdAverageBusyInTimeRed
        threshold_average_busy_out_time_yellow: thresholdAverageBusyOutTimeYellow
        threshold_average_busy_out_time_red: thresholdAverageBusyOutTimeRed
        threshold_average_wrap_up_time_yellow: thresholdAverageWrapUpTimeYellow
        threshold_average_wrap_up_time_red: thresholdAverageWrapUpTimeRed
        enable_notification_email: enableNotificationEmail
        notification_email_address: notificationEmailAddress
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
        E("profile_description", "profileDescription", str),
        E(
            "threshold_current_call_state_idle_time_yellow",
            "thresholdCurrentCallStateIdleTimeYellow", int,
        ),
        E(
            "threshold_current_call_state_idle_time_red",
            "thresholdCurrentCallStateIdleTimeRed", int,
        ),
        E(
            "threshold_current_call_state_on_call_time_yellow",
            "thresholdCurrentCallStateOnCallTimeYellow", int,
        ),
        E(
            "threshold_current_call_state_on_call_time_red",
            "thresholdCurrentCallStateOnCallTimeRed", int,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_yellow",
            "thresholdCurrentAgentStateUnavailableTimeYellow", int,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_red",
            "thresholdCurrentAgentStateUnavailableTimeRed", int,
        ),
        E("threshold_average_busy_in_time_yellow", "thresholdAverageBusyInTimeYellow", int),
        E("threshold_average_busy_in_time_red", "thresholdAverageBusyInTimeRed", int),
        E("threshold_average_busy_out_time_yellow", "thresholdAverageBusyOutTimeYellow", int),
        E("threshold_average_busy_out_time_red", "thresholdAverageBusyOutTimeRed", int),
        E("threshold_average_wrap_up_time_yellow", "thresholdAverageWrapUpTimeYellow", int),
        E("threshold_average_wrap_up_time_red", "thresholdAverageWrapUpTimeRed", int),
        E("enable_notification_email", "enableNotificationEmail", bool, is_required=True),
        E("notification_email_address", "notificationEmailAddress", str),
        E("agent_user_id", "agentUserId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)
    profile_description: str = Field(type=str, required=False, mutable=False)
    threshold_current_call_state_idle_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_idle_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_on_call_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_on_call_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_agent_state_unavailable_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_agent_state_unavailable_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_in_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_in_time_red: int = Field(type=int, required=False, mutable=False)
    threshold_average_busy_out_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_out_time_red: int = Field(type=int, required=False, mutable=False)
    threshold_average_wrap_up_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_wrap_up_time_red: int = Field(type=int, required=False, mutable=False)
    enable_notification_email: bool = Field(type=bool, required=True, mutable=False)
    notification_email_address: str = Field(type=str, required=False, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class EnterpriseCallCenterAgentThresholdProfileDeleteAgentListRequest(OCIRequest):
    """
    Delete agent(s) from a Agent Threshold Profile.

    Agents cannot be unassigned (deleted) directly from the default profile, they need to
    be assigned (added) to a different profile.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        profile_name: profileName
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)
    agent_user_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentThresholdProfileDeleteRequest(OCIRequest):
    """
    Deletes an existing Call Center Agent Threshold Profile in an Enterprise.

    The default profile cannot be deleted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        profile_name: profileName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentThresholdProfileGetListRequest(OCIRequest):
    """
    Get the list of Call Center Agent Threshold Profiles in the Enterprise.

    The response is either ``EnterpriseCallCenterAgentThresholdProfileGetListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentThresholdProfileGetRequest(OCIRequest):
    """
    Gets an existing non-default Call Center Agent Threshold Profile in an Enterprise.

    The response is either a ``EnterpriseCallCenterAgentThresholdProfileGetResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        profile_name: profileName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentUnavailableCodeAddRequest(OCIRequest):
    """
    Add a Call Center Agent Unavailable Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        is_active: isActive
        code: code
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("code", "code", str, is_required=True),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class EnterpriseCallCenterAgentUnavailableCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Agent Unavailable Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentUnavailableCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Agent Unavailable Codes.

    The response is either ``EnterpriseCallCenterAgentUnavailableCodeGetListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentUnavailableCodeGetRequest(OCIRequest):
    """
    Get a Call Center Agent Unavailable Code.

    The response is either ``EnterpriseCallCenterAgentUnavailableCodeGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentUnavailableCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Agent Unavailable Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class EnterpriseCallCenterAgentUnavailableCodeSettingsGetRequest(OCIRequest):
    """
    Request the enterprise level data associated with Call Center Agents Unavailable Code
    Settings.

    The response is either an
    ``EnterpriseCallCenterAgentUnavailableCodeSettingsGetResponse()`` or an
    ``ErrorResponse()``. Replaced by
    ``EnterpriseCallCenterAgentUnavailableCodeSettingsGetRequest17sp4()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterAgentUnavailableCodeSettingsGetRequest17sp4(OCIRequest):
    """
    Request the enterprise level data associated with Call Center Agents Unavailable Code
    Settings.

    The response is either an
    ``EnterpriseCallCenterAgentUnavailableCodeSettingsGetResponse17sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterCallDispositionCodeAddRequest(OCIRequest):
    """
    Add a Call Center Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class EnterpriseCallCenterCallDispositionCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterCallDispositionCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Call Disposition Codes.

    The response is either ``EnterpriseCallCenterCallDispositionCodeGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterCallDispositionCodeGetRequest(OCIRequest):
    """
    Get a Call Center Call Disposition Code.

    The response is either ``EnterpriseCallCenterCallDispositionCodeGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterCallDispositionCodeGetUsageListRequest(OCIRequest):
    """
    Get the list of Call Centers and Route Points using the specified disposition code.

    The response is either
    ``EnterpriseCallCenterCallDispositionCodeGetUsageListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterCallDispositionCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class EnterpriseCallCenterCurrentAndPastDNISGetListRequest(OCIRequest):
    """
    Request to get all the past and current DNIS for the Call Center for the enterprise.

    The response is either ``EnterpriseCallCenterCurrentAndPastDNISGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingBrandingGetRequest(OCIRequest):
    """
    Request to get the enterprise branding information.

    The response is either ``EnterpriseCallCenterEnhancedReportingBrandingGetResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingGetAvailableReportTemplateListRequest(OCIRequest):
    """
    Request to get all enabled call center report template for an enterprise.

    The response is either an
    ``EnterpriseCallCenterEnhancedReportingGetAvailableReportTemplateListResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingGetRequest(OCIRequest):
    """
    Request to get an enterprise level call center enhanced reporting setting.

    The response is either an ``EnterpriseCallCenterEnhancedReportingGetResponse()`` or an
    ``ErrorResponse()``. Replaced by
    ``EnterpriseCallCenterEnhancedReportingGetRequest19()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingGetRequest19(OCIRequest):
    """
    Request to get an enterprise level call center enhanced reporting setting.

    The response is either an ``EnterpriseCallCenterEnhancedReportingGetResponse19()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingModifyRequest(OCIRequest):
    """
    Request to modify enterprise level call center enhanced reporting settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``EnterpriseCallCenterEnhancedReportingModifyRequest19()``

    Attributes:
        service_provider_id: serviceProviderId
        reporting_server: reportingServer
        web_statistic_source: webStatisticSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("reporting_server", "reportingServer", str),
        E("web_statistic_source", "webStatisticSource", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    reporting_server: str = Field(type=str, required=False, mutable=False)
    web_statistic_source: str = Field(type=str, required=False, mutable=False)


class EnterpriseCallCenterEnhancedReportingModifyRequest19(OCIRequest):
    """
    Request to modify enterprise level call center enhanced reporting settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        reporting_server: reportingServer
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("reporting_server", "reportingServer", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    reporting_server: str = Field(type=str, required=False, mutable=False)


class EnterpriseCallCenterEnhancedReportingReportTemplateDeleteRequest(OCIRequest):
    """
    Request to delete an enterprise level call center report template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingReportTemplateGetListRequest(OCIRequest):
    """
    Request to get enterprise level call center report template list.

    The response is either an
    ``EnterpriseCallCenterEnhancedReportingReportTemplateGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingReportTemplateGetRequest(OCIRequest):
    """
    Request to get an enterprise level call center report template.

    The response is either an
    ``EnterpriseCallCenterEnhancedReportingReportTemplateGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingScheduledReportDeleteRequest(OCIRequest):
    """
    Request to delete an enterprise level call center reporting scheduled report.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingScheduledReportGetReportTemplateUsageListRequest(OCIRequest):
    """
    Request to get all the call center reporting scheduled report in an enterprise that
    uses a given enterprise level report template.

    The response is either a
    ``EnterpriseCallCenterEnhancedReportingScheduledReportGetReportTemplateUsageListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingScheduledReportGetRequest(OCIRequest):
    """
    Request to get an enterprise level call center reporting scheduled report.

    The response is either an
    ``EnterpriseCallCenterEnhancedReportingScheduledReportGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterGetRequest(OCIRequest):
    """
    Request the enterprise level data associated with Call Center.

    The response is either an ``EnterpriseCallCenterGetResponse()`` or an
    ``ErrorResponse()``. Replaced by ``EnterpriseCallCenterGetRequest17sp4()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterGetRequest17sp4(OCIRequest):
    """
    Request the enterprise level data associated with Call Center.

    The response is either an ``EnterpriseCallCenterGetResponse17sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterGetRoutingPolicyRequest(OCIRequest):
    """
    Request the enterprise call center routing policy.

    The response is either an ``EnterpriseCallCenterGetRoutingPolicyResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterModifyRequest(OCIRequest):
    """
    Modify the enterprise level data associated with Call Center The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        service_provider_id: serviceProviderId
        use_system_default_guard_timer: useSystemDefaultGuardTimer
        enable_guard_timer: enableGuardTimer
        guard_timer_seconds: guardTimerSeconds
        use_system_default_unavailable_settings: useSystemDefaultUnavailableSettings
        force_agent_unavailable_on_dnd_activation: forceAgentUnavailableOnDNDActivation
        force_agent_unavailable_on_personal_calls: forceAgentUnavailableOnPersonalCalls
        force_agent_unavailable_on_bounced_call_limit:
            forceAgentUnavailableOnBouncedCallLimit
        number_consecutive_bounced_calls_to_force_agent_unavailable:
            numberConsecutiveBouncedCallsToForceAgentUnavailable
        force_agent_unavailable_on_not_reachable: forceAgentUnavailableOnNotReachable
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("use_system_default_guard_timer", "useSystemDefaultGuardTimer", bool),
        E("enable_guard_timer", "enableGuardTimer", bool),
        E("guard_timer_seconds", "guardTimerSeconds", int),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings", bool,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation", bool,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls", bool,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit", bool,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable", int,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable", bool,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_system_default_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    enable_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    guard_timer_seconds: int = Field(type=int, required=False, mutable=False)
    use_system_default_unavailable_settings: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_dnd_activation: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_personal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_bounced_call_limit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    number_consecutive_bounced_calls_to_force_agent_unavailable: int = Field(
        type=int, required=False, mutable=False,
    )
    force_agent_unavailable_on_not_reachable: bool = Field(
        type=bool, required=False, mutable=False,
    )


class EnterpriseCommonPhoneListDeleteListRequest(OCIRequest):
    """
    Delete one or more entries from an enterprise's common phone list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        entry_name: entryName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("entry_name", "entryName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    entry_name: str = Field(type=str, required=True, mutable=False)


class EnterpriseCommonPhoneListModifyRequest(OCIRequest):
    """
    Modify an entry in an enterprise's common phone list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        entry_name: entryName
        new_entry_name: newEntryName
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("entry_name", "entryName", str, is_required=True),
        E("new_entry_name", "newEntryName", str),
        E("phone_number", "phoneNumber", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    entry_name: str = Field(type=str, required=True, mutable=False)
    new_entry_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)


class EnterpriseDepartmentDeleteRequest(OCIRequest):
    """
    Delete a department from an enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        enterprise_id: enterpriseId
        department_name: departmentName
    """

    _ELEMENTS = (
        E("enterprise_id", "enterpriseId", str, is_required=True),
        E("department_name", "departmentName", str, is_required=True),
    )

    enterprise_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=True, mutable=False)


class EnterpriseDepartmentGetAvailableParentListRequest(OCIRequest):
    """
    Get a list of enterprise level departments in an enterprise that could be the parent
    of the specified department.

    The department itself and all its decendents are not eligible to be the parent
    department.

    The response is either ``EnterpriseDepartmentGetAvailableParentListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        enterprise_id: enterpriseId
        department_name: departmentName
    """

    _ELEMENTS = (
        E("enterprise_id", "enterpriseId", str, is_required=True),
        E("department_name", "departmentName", str, is_required=True),
    )

    enterprise_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=True, mutable=False)


class EnterpriseDepartmentGetListRequest(OCIRequest):
    """
    Request a list of departments in an enterprise.

    You may request only the list of departments defined at the enterprise-level, or you
    may request the list of all departments in the enterprise including all the
    departments defined within the groups inside the enterprise.

    The response is either ``EnterpriseDepartmentGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        enterprise_id: enterpriseId
        include_group_departments: includeGroupDepartments
    """

    _ELEMENTS = (
        E("enterprise_id", "enterpriseId", str, is_required=True),
        E("include_group_departments", "includeGroupDepartments", bool, is_required=True),
    )

    enterprise_id: str = Field(type=str, required=True, mutable=False)
    include_group_departments: bool = Field(type=bool, required=True, mutable=False)


class EnterpriseEnterpriseTrunkAddRequest(OCIRequest):
    """
    Request to add an enterprise trunk in an enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``EnterpriseEnterpriseTrunkAddRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
        maximum_reroute_attempts: maximumRerouteAttempts
        route_exhaustion_action: routeExhaustionAction
        route_exhaustion_forward_address: routeExhaustionForwardAddress
        ordered_routing: orderedRouting
        priority_weighted_routing: priorityWeightedRouting
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("maximum_reroute_attempts", "maximumRerouteAttempts", int, is_required=True),
        E("route_exhaustion_action", "routeExhaustionAction", str, is_required=True),
        E("route_exhaustion_forward_address", "routeExhaustionForwardAddress", str),
        E("ordered_routing", "orderedRouting", str, is_complex=True),  # unknown
        E(
            "priority_weighted_routing", "priorityWeightedRouting", str, is_complex=True,
        ),  # unknown
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    maximum_reroute_attempts: int = Field(type=int, required=True, mutable=False)
    route_exhaustion_action: str = Field(type=str, required=True, mutable=False)
    route_exhaustion_forward_address: str = Field(type=str, required=False, mutable=False)
    ordered_routing: str = Field(type=str, required=False, mutable=False)
    priority_weighted_routing: str = Field(type=str, required=False, mutable=False)


class EnterpriseEnterpriseTrunkAddRequest21(OCIRequest):
    """
    Request to add an enterprise trunk in an enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
        maximum_reroute_attempts: maximumRerouteAttempts
        route_exhaustion_action: routeExhaustionAction
        route_exhaustion_forward_address: routeExhaustionForwardAddress
        ordered_routing: orderedRouting
        priority_weighted_routing: priorityWeightedRouting
        enable_capacity_management: enableCapacityManagement
        max_active_calls: maxActiveCalls
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("maximum_reroute_attempts", "maximumRerouteAttempts", int, is_required=True),
        E("route_exhaustion_action", "routeExhaustionAction", str, is_required=True),
        E("route_exhaustion_forward_address", "routeExhaustionForwardAddress", str),
        E("ordered_routing", "orderedRouting", str, is_complex=True),  # unknown
        E(
            "priority_weighted_routing", "priorityWeightedRouting", str, is_complex=True,
        ),  # unknown
        E("enable_capacity_management", "enableCapacityManagement", bool, is_required=True),
        E("max_active_calls", "maxActiveCalls", int),
        E("capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls", int),
        E("capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    maximum_reroute_attempts: int = Field(type=int, required=True, mutable=False)
    route_exhaustion_action: str = Field(type=str, required=True, mutable=False)
    route_exhaustion_forward_address: str = Field(type=str, required=False, mutable=False)
    ordered_routing: str = Field(type=str, required=False, mutable=False)
    priority_weighted_routing: str = Field(type=str, required=False, mutable=False)
    enable_capacity_management: bool = Field(type=bool, required=True, mutable=False)
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=False, mutable=False)


class EnterpriseEnterpriseTrunkAddUserListRequest(OCIRequest):
    """
    Request to add users to an enterprise trunk in an enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseEnterpriseTrunkDeleteRequest(OCIRequest):
    """
    Request to delete an enterprise trunk in an enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)


class EnterpriseEnterpriseTrunkDeleteUserListRequest(OCIRequest):
    """
    Request to delete users from an enterprise trunk in an enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseEnterpriseTrunkForceAssignUserListRequest(OCIRequest):
    """
    Request to add users to an enterprise trunk in an enterprise.

    If the user is already assigned to another enterprise trunk, it will be unassigned
    from the old enterprise trunk and assigned to the new enterprise trunk specified in
    this request.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseEnterpriseTrunkGetListRequest(OCIRequest):
    """
    Request to get the list of all enterprise trunks defined in an enterprise.

    The response is either a ``EnterpriseEnterpriseTrunkGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseEnterpriseTrunkGetRequest(OCIRequest):
    """
    Request to get an enterprise trunk The response is either an
    ``EnterpriseEnterpriseTrunkGetResponse()`` or an ``ErrorResponse()``.

    Replaced by: ``EnterpriseEnterpriseTrunkGetRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)


class EnterpriseEnterpriseTrunkGetRequest21(OCIRequest):
    """
    Request to get an enterprise trunk The response is either an
    ``EnterpriseEnterpriseTrunkGetResponse21()`` or an ``ErrorResponse()``.


    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)


class EnterpriseEnterpriseTrunkModifyRequest(OCIRequest):
    """
    Request to modify an enterprise trunk in an enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
        new_enterprise_trunk_name: newEnterpriseTrunkName
        maximum_reroute_attempts: maximumRerouteAttempts
        route_exhaustion_action: routeExhaustionAction
        route_exhaustion_forward_address: routeExhaustionForwardAddress
        ordered_routing: orderedRouting
        priority_weighted_routing: priorityWeightedRouting
        enable_capacity_management: enableCapacityManagement
        max_active_calls: maxActiveCalls
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("new_enterprise_trunk_name", "newEnterpriseTrunkName", str),
        E("maximum_reroute_attempts", "maximumRerouteAttempts", int),
        E("route_exhaustion_action", "routeExhaustionAction", str),
        E("route_exhaustion_forward_address", "routeExhaustionForwardAddress", str),
        E("ordered_routing", "orderedRouting", str, is_complex=True),  # unknown
        E(
            "priority_weighted_routing", "priorityWeightedRouting", str, is_complex=True,
        ),  # unknown
        E("enable_capacity_management", "enableCapacityManagement", bool),
        E("max_active_calls", "maxActiveCalls", int),
        E("capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls", int),
        E("capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    new_enterprise_trunk_name: str = Field(type=str, required=False, mutable=False)
    maximum_reroute_attempts: int = Field(type=int, required=False, mutable=False)
    route_exhaustion_action: str = Field(type=str, required=False, mutable=False)
    route_exhaustion_forward_address: str = Field(type=str, required=False, mutable=False)
    ordered_routing: str = Field(type=str, required=False, mutable=False)
    priority_weighted_routing: str = Field(type=str, required=False, mutable=False)
    enable_capacity_management: bool = Field(type=bool, required=False, mutable=False)
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=False, mutable=False)


class EnterprisePreAlertingAnnouncementGetRequest(OCIRequest):
    """
    Get the Enterprise pre-alerting service settings.

    The response is either a ``EnterprisePreAlertingAnnouncementGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseRouteListEnterpriseTrunkNumberRangeGetAvailableListRequest(OCIRequest):
    """
    Request a list of number ranges that are assigned to an enterprise and still available
    for assignment to users within the enterprise.

    The response is either
    ``EnterpriseRouteListEnterpriseTrunkNumberRangeGetAvailableListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseRouteListEnterpriseTrunkNumberRangeGetSummaryListRequest(OCIRequest):
    """
    Request a summary table of all enterprise trunk number ranges in the enterprise.

    The response is either
    ``EnterpriseRouteListEnterpriseTrunkNumberRangeGetSummaryListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseSessionAdmissionControlGroupDeleteListRequest(OCIRequest):
    """
    Request to delete one or more session admission control groups for the enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class EnterpriseSessionAdmissionControlGroupGetListRequest(OCIRequest):
    """
    Request to get the list of session admission control group for the enterprise.

    The response is either an ``EnterpriseSessionAdmissionControlGroupGetListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseSessionAdmissionControlGroupGetRequest(OCIRequest):
    """
    Request to get a session admission control group for the enterprise.

    The response is either an ``EnterpriseSessionAdmissionControlGroupGetResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class EnterpriseSessionAdmissionControlGroupGetRequest19sp1(OCIRequest):
    """
    Request to get a session admission control group for the enterprise.

    The response is either an ``EnterpriseSessionAdmissionControlGroupGetResponse19sp1()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class EnterpriseVoiceVPNDeletePolicyRequest(OCIRequest):
    """
    Delete a enterprise voice VPN location.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        location_dialing_code: locationDialingCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("location_dialing_code", "locationDialingCode", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    location_dialing_code: str = Field(type=str, required=True, mutable=False)


class EnterpriseVoiceVPNGetDefaultRequest(OCIRequest):
    """
    Request the Voice VPN default settings for the enterprise.

    The response is ``EnterpriseVoiceVPNGetDefaultResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseVoiceVPNGetPolicyRequest(OCIRequest):
    """
    Request the enterprise level data associated with Voice VPN location code.

    The response is either a ``EnterpriseVoiceVPNGetPolicyResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        location_dialing_code: locationDialingCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("location_dialing_code", "locationDialingCode", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    location_dialing_code: str = Field(type=str, required=True, mutable=False)


class EnterpriseVoiceVPNGetRequest(OCIRequest):
    """
    Request the enterprise level data associated with Voice VPN.

    The response is either a ``EnterpriseVoiceVPNGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``EnterpriseVoiceVPNGetRequest14sp3()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseVoiceVPNGetRequest14sp3(OCIRequest):
    """
    Request the enterprise level data associated with Voice VPN.

    The response is either a ``EnterpriseVoiceVPNGetResponse14sp3()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class EnterpriseVoiceVPNModifyRequest(OCIRequest):
    """
    Modify the enterprise voice VPN level data associated with voice VPN.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        is_active: isActive
        default_selection: defaultSelection
        e164_selection: e164Selection
        use_phone_context: usePhoneContext
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("default_selection", "defaultSelection", str),
        E("e164_selection", "e164Selection", str),
        E("use_phone_context", "usePhoneContext", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    default_selection: str = Field(type=str, required=False, mutable=False)
    e164_selection: str = Field(type=str, required=False, mutable=False)
    use_phone_context: bool = Field(type=bool, required=False, mutable=False)


class ExternalAuthenticationAuthorizeTokenRequest(OCIRequest):
    """
    This command is part of the Portal API.

    Sent when a Web or CLI user logs in using external authentication.  The password must
    be hashed.  The password hashing algorithm is: 1) The message digest of the user's
    plain password is calculated using the SHA algorithm.  2) For every four bits in the
    160-bit digest, starting from the first bit, it is converted into a character in ASCII
    Hex format (0 through 9, a through f). The result is a 40-character string, for
    example, f7a9e24777ec23212c54d7a350bc5bea5477fdbb.  3) The above string then is used
    to populate the password field in the request.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        password: password
        login_token: loginToken
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("password", "password", str),
        E("login_token", "loginToken", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    login_token: str = Field(type=str, required=True, mutable=False)


class ExternalAuthenticationCreateLoginTokenRequest(OCIRequest):
    """
    This command allows a BroadWorks or Third-Party Client Application to create a Single
    Sign-On token for a user.

    The response is either ``ExternalAuthenticationCreateLoginTokenResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceCustomTagAddRequest(OCIRequest):
    """
    Request to add a static configuration tag for a group access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class GroupAccessDeviceCustomTagDeleteListRequest(OCIRequest):
    """
    Request to delete static configuration tags for a group access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        tag_name: tagName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceCustomTagGetListRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceCustomTagModifyRequest(OCIRequest):
    """
    Request to modify a static configuration tag for a group access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class GroupAccessDeviceDeleteRequest(OCIRequest):
    """
    Request to delete a specified group access device.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceFileGetListRequest(OCIRequest):
    """
    Request to get the list of device files managed by the Device Management System, on a
    per-device profile basis.

    The response is either ``GroupAccessDeviceFileGetListResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupAccessDeviceFileGetListRequest14sp8()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceFileGetListRequest14sp8(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceFileGetRequest(OCIRequest):
    """
    Request to get a group device profile file.

    The response is either ``GroupAccessDeviceFileGetResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupAccessDeviceFileGetRequest14sp8()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        file_type: fileType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceFileGetRequest14sp8(OCIRequest):
    """
    Request to get a group device profile file.

    The response is either ``GroupAccessDeviceFileGetResponse14sp8()`` or
    ``ErrorResponse()``. Replaced by: ``GroupAccessDeviceFileGetRequest16sp1()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceFileGetRequest16sp1(OCIRequest):
    """
    Request to get a group device profile file.

    The response is either ``GroupAccessDeviceFileGetResponse16sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceFileGetRequest20(OCIRequest):
    """
    Request to get a group device profile file.

    The response is either ``GroupAccessDeviceFileGetResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceGetAvailableDetailListRequest14(OCIRequest):
    """
    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()``. Replaced by:
    ``GroupAccessDeviceGetAvailableDetailListRequest19()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_music_on_hold: isMusicOnHold
        only_video_capable: onlyVideoCapable
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_music_on_hold", "isMusicOnHold", bool, is_required=True),
        E("only_video_capable", "onlyVideoCapable", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_music_on_hold: bool = Field(type=bool, required=True, mutable=False)
    only_video_capable: bool = Field(type=bool, required=True, mutable=False)


class GroupAccessDeviceGetAvailableDetailListRequest19(OCIRequest):
    """
    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 ``GroupAccessDeviceGetAvailableDetailListResponse19()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_music_on_hold: isMusicOnHold
        only_video_capable: onlyVideoCapable
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_music_on_hold", "isMusicOnHold", bool, is_required=True),
        E("only_video_capable", "onlyVideoCapable", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_music_on_hold: bool = Field(type=bool, required=True, mutable=False)
    only_video_capable: bool = Field(type=bool, required=True, mutable=False)


class GroupAccessDeviceGetEnhancedConfigurationTypeListRequest(OCIRequest):
    """
    Requests the list of configurable device types of devices that have already been added
    to the group.

    The response is either ``GroupAccessDeviceGetEnhancedConfigurationTypeListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceGetEnhancedConfigurationTypeRequest14(OCIRequest):
    """
    Requests the details of a specified configurable device type for a group.

    The response is either ``GroupAccessDeviceGetEnhancedConfigurationTypeResponse14()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceGetRequest14(OCIRequest):
    """
    Requests the configuration of a specified group access device.

    The response is either ``GroupAccessDeviceGetResponse14()`` or ``ErrorResponse()``.

    Replaced By: ``GroupAccessDeviceGetRequest14sp3()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceGetRequest14sp3(OCIRequest):
    """
    Requests the configuration of a specified group access device.

    The response is either ``GroupAccessDeviceGetResponse14sp3()`` or ``ErrorResponse()``.

    Replaced By: ``GroupAccessDeviceGetRequest14sp6()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceGetRequest14sp6(OCIRequest):
    """
    Requests the configuration of a specified group access device.

    The response is either ``GroupAccessDeviceGetResponse14sp6()`` or ``ErrorResponse()``.
    Replaced by: ``GroupAccessDeviceGetRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceGetRequest16(OCIRequest):
    """
    Requests the configuration of a specified group access device.

    The response is either ``GroupAccessDeviceGetResponse16()`` or ``ErrorResponse()``.
    Replaced by: ``GroupAccessDeviceGetRequest18sp1()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceGetRequest18sp1(OCIRequest):
    """
    Requests the configuration of a specified group access device.

    The response is either ``GroupAccessDeviceGetResponse18sp1()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccessDeviceModifyUserRequest(OCIRequest):
    """
    Request to modify attributes for line/ports assigned on the group device profile.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode and ignored in AS data mode: privateIdentity

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        line_port: linePort
        private_identity: privateIdentity
        is_primary_line_port: isPrimaryLinePort
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("line_port", "linePort", str, is_required=True),
        E("private_identity", "privateIdentity", str),
        E("is_primary_line_port", "isPrimaryLinePort", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    line_port: str = Field(type=str, required=True, mutable=False)
    private_identity: str = Field(type=str, required=False, mutable=False)
    is_primary_line_port: bool = Field(type=bool, required=False, mutable=False)


class GroupAccessDeviceResetRequest(OCIRequest):
    """
    Reset a specific group SIP device that supports the reset operation.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupAccountAuthorizationCodesDeleteListRequest(OCIRequest):
    """
    Delete a list of account/authorization codes from a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupAccountAuthorizationCodesGetListRequest(OCIRequest):
    """
    Request the list of account/authorization codes for a group.

    The response is either a ``GroupAccountAuthorizationCodesGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupAccountAuthorizationCodesGetRequest(OCIRequest):
    """
    Request the group's account/authorization codes setting.

    The response is either a ``GroupAccountAuthorizationCodesGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminAddRequest(OCIRequest):
    """
    Add a group administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        user_id: userId
        first_name: firstName
        last_name: lastName
        password: password
        language: language
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
        E("first_name", "firstName", str),
        E("last_name", "lastName", str),
        E("password", "password", str),
        E("language", "language", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    language: str = Field(type=str, required=False, mutable=False)


class GroupAdminDeleteRequest(OCIRequest):
    """
    Delete a group administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetListRequest(OCIRequest):
    """
    Get a list of group and department administrators within the group.

    The response is either a ``GroupAdminGetListResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetPolicyRequest(OCIRequest):
    """
    Requests the Group administrator's policy settings.

    The response is either ``GroupAdminGetPolicyResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetPolicyRequest14sp1(OCIRequest):
    """
    Requests the Group administrator's policy settings.

    The response is either ``GroupAdminGetPolicyResponse14sp1()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetPolicyRequest16sp1(OCIRequest):
    """
    Requests the Group administrator's policy settings.

    The response is either ``GroupAdminGetPolicyResponse16sp1()`` or ``ErrorResponse()``.
    Replaced by: ``GroupAdminGetPolicyRequest17()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetPolicyRequest16sp2(OCIRequest):
    """
    Requests the Group administrator's policy settings.

    The response is either ``GroupAdminGetPolicyResponse16sp2()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetPolicyRequest17(OCIRequest):
    """
    Requests the Group administrator's policy settings.

    The response is either ``GroupAdminGetPolicyResponse17()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetPolicyRequest17sp3(OCIRequest):
    """
    Requests the Group administrator's policy settings.

    The response is either ``GroupAdminGetPolicyResponse17sp3()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetPolicyRequest18(OCIRequest):
    """
    Requests the Group administrator's policy settings.

    The response is either ``GroupAdminGetPolicyResponse18()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetPolicyRequest19sp1(OCIRequest):
    """
    Requests the Group administrator's policy settings.

    The response is either ``GroupAdminGetPolicyResponse19sp1()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetPolicyRequest20(OCIRequest):
    """
    Requests the Group administrator's policy settings.

    The response is either ``GroupAdminGetPolicyResponse20()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminGetRequest(OCIRequest):
    """
    Get a group administrators profile.

    The response is either a ``GroupAdminGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupAdminModifyPolicyRequest(OCIRequest):
    """
    Request to modify the group administrator's policy settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: dialableCallerIDAccess
    verifyTranslationAndRoutingAccess communicationBarringUserProfileAccess (only
    applicable to groups in an Enterprise)

    Attributes:
        user_id: userId
        profile_access: profileAccess
        user_access: userAccess
        admin_access: adminAccess
        department_access: departmentAccess
        access_device_access: accessDeviceAccess
        enhanced_service_instance_access: enhancedServiceInstanceAccess
        feature_access_code_access: featureAccessCodeAccess
        phone_number_extension_access: phoneNumberExtensionAccess
        calling_line_id_number_access: callingLineIdNumberAccess
        service_access: serviceAccess
        trunk_group_access: trunkGroupAccess
        session_admission_control_access: sessionAdmissionControlAccess
        office_zone_access: officeZoneAccess
        dialable_caller_id_access: dialableCallerIDAccess
        number_activation_access: numberActivationAccess
        verify_translation_and_routing_access: verifyTranslationAndRoutingAccess
        communication_barring_user_profile_access: communicationBarringUserProfileAccess
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("profile_access", "profileAccess", str),
        E("user_access", "userAccess", str),
        E("admin_access", "adminAccess", str),
        E("department_access", "departmentAccess", str),
        E("access_device_access", "accessDeviceAccess", str),
        E("enhanced_service_instance_access", "enhancedServiceInstanceAccess", str),
        E("feature_access_code_access", "featureAccessCodeAccess", str),
        E("phone_number_extension_access", "phoneNumberExtensionAccess", str),
        E("calling_line_id_number_access", "callingLineIdNumberAccess", str),
        E("service_access", "serviceAccess", str),
        E("trunk_group_access", "trunkGroupAccess", str),
        E("session_admission_control_access", "sessionAdmissionControlAccess", str),
        E("office_zone_access", "officeZoneAccess", str),
        E("dialable_caller_id_access", "dialableCallerIDAccess", str),
        E("number_activation_access", "numberActivationAccess", str),
        E("verify_translation_and_routing_access", "verifyTranslationAndRoutingAccess", str),
        E(
            "communication_barring_user_profile_access",
            "communicationBarringUserProfileAccess", str,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    profile_access: str = Field(type=str, required=False, mutable=False)
    user_access: str = Field(type=str, required=False, mutable=False)
    admin_access: str = Field(type=str, required=False, mutable=False)
    department_access: str = Field(type=str, required=False, mutable=False)
    access_device_access: str = Field(type=str, required=False, mutable=False)
    enhanced_service_instance_access: str = Field(type=str, required=False, mutable=False)
    feature_access_code_access: str = Field(type=str, required=False, mutable=False)
    phone_number_extension_access: str = Field(type=str, required=False, mutable=False)
    calling_line_id_number_access: str = Field(type=str, required=False, mutable=False)
    service_access: str = Field(type=str, required=False, mutable=False)
    trunk_group_access: str = Field(type=str, required=False, mutable=False)
    session_admission_control_access: str = Field(type=str, required=False, mutable=False)
    office_zone_access: str = Field(type=str, required=False, mutable=False)
    dialable_caller_id_access: str = Field(type=str, required=False, mutable=False)
    number_activation_access: str = Field(type=str, required=False, mutable=False)
    verify_translation_and_routing_access: str = Field(
        type=str, required=False, mutable=False,
    )
    communication_barring_user_profile_access: str = Field(
        type=str, required=False, mutable=False,
    )


class GroupAdminModifyRequest(OCIRequest):
    """
    Modify a group administrator.

    Since old password is not specified here, any password rule related to old password
    does not apply.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        first_name: firstName
        last_name: lastName
        password: password
        language: language
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("first_name", "firstName", str),
        E("last_name", "lastName", str),
        E("password", "password", str),
        E("language", "language", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    language: str = Field(type=str, required=False, mutable=False)


class GroupAdviceOfChargeGetRequest(OCIRequest):
    """
    Request to get the list of Advice of Charge group parameters.

    The response is either ``GroupAdviceOfChargeGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupAdviceOfChargeModifyRequest(OCIRequest):
    """
    Modify the service provider level Advice Of Charge group settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_group_level_ao_c_settings: useGroupLevelAoCSettings
        delay_between_notification_seconds: delayBetweenNotificationSeconds
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_group_level_ao_c_settings", "useGroupLevelAoCSettings", bool),
        E("delay_between_notification_seconds", "delayBetweenNotificationSeconds", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_group_level_ao_c_settings: bool = Field(type=bool, required=False, mutable=False)
    delay_between_notification_seconds: int = Field(type=int, required=False, mutable=False)


class GroupApplicationServerSetGetRequest(OCIRequest):
    """
    Get the Application Server set for a group.

    The response is either a ``GroupApplicationServerSetGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupApplicationServerSetModifyRequest(OCIRequest):
    """
    Modify the Application Server set for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        application_server_set_name: applicationServerSetName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("application_server_set_name", "applicationServerSetName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    application_server_set_name: str = Field(type=str, required=False, mutable=False)


class GroupAutoAttendantDeleteInstanceRequest(OCIRequest):
    """
    Delete a Auto Attendant instance from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantGetInstanceListRequest(OCIRequest):
    """
    Get a list of Auto Attendant instances within a group.

    The response is either ``GroupAutoAttendantGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)


class GroupAutoAttendantGetInstanceRequest14(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.

    The response is either ``GroupAutoAttendantGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupAutoAttendantGetInstanceRequest16()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantGetInstanceRequest16(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.

    The response is either ``GroupAutoAttendantGetInstanceResponse16()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantGetInstanceRequest17(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.

    The response is either ``GroupAutoAttendantGetInstanceResponse17()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantGetInstanceRequest17sp1(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.

    The response is either ``GroupAutoAttendantGetInstanceResponse17sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantGetInstanceRequest19(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.

    The response is either ``GroupAutoAttendantGetInstanceResponse19()`` or
    ``ErrorResponse()``. Replaced by: ``GroupAutoAttendantGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.

    The response is either ``GroupAutoAttendantGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``. Replaced by: ``GroupAutoAttendantGetInstanceRequest20()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantGetInstanceRequest20(OCIRequest):
    """
    Request to get all the information of a Auto Attendant instance.

    The response is either ``GroupAutoAttendantGetInstanceResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantSubmenuDeleteListRequest(OCIRequest):
    """
    Delete a submenu form an auto attendant.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. This request is
    only valid for Standard auto attendants.

    Attributes:
        service_user_id: serviceUserId
        submenu_id: submenuId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("submenu_id", "submenuId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    submenu_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantSubmenuGetListRequest(OCIRequest):
    """
    Get a list of Auto Attendant Submenus.

    The response is either ``GroupAutoAttendantSubmenuGetListResponse()`` or
    ``ErrorResponse()``. This request is only valid for Standard auto attendants.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantSubmenuGetRequest(OCIRequest):
    """
    Request to get an Auto Attendant submenu instance.

    The response is either ``GroupAutoAttendantSubmenuGetResponse()`` or
    ``ErrorResponse()``. This request is only valid for Standard auto attendants.

    Attributes:
        service_user_id: serviceUserId
        submenu_id: submenuId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("submenu_id", "submenuId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    submenu_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantSubmenuGetRequest20(OCIRequest):
    """
    Request to get an Auto Attendant submenu instance.

    The response is either ``GroupAutoAttendantSubmenuGetResponse20()`` or
    ``ErrorResponse()``. This request is only valid for Standard auto attendants.

    Attributes:
        service_user_id: serviceUserId
        submenu_id: submenuId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("submenu_id", "submenuId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    submenu_id: str = Field(type=str, required=True, mutable=False)


class GroupAutoAttendantSubmenuGetUsageListRequest(OCIRequest):
    """
    Get a list of Auto Attendant Business Hours Menu,After Hours Menu,Holiday Menu and
    Submenus that use this submenu.

    The response is either ``GroupAutoAttendantSubmenuGetUsageListResponse()`` or
    ``ErrorResponse()``. This request is only valid for Standard auto attendants.

    Attributes:
        service_user_id: serviceUserId
        submenu_id: submenuId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("submenu_id", "submenuId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    submenu_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksAnywhereDeleteInstanceRequest(OCIRequest):
    """
    Delete a BroadWorks Anywhere instance from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksAnywhereGetInstanceListRequest(OCIRequest):
    """
    Get a list of BroadWorks Anywhere instances within a group.

    The response is either ``GroupBroadWorksAnywhereGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)


class GroupBroadWorksAnywhereGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a BroadWorks Anywhere instance.

    The response is either ``GroupBroadWorksAnywhereGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksAnywhereGetInstanceRequest17(OCIRequest):
    """
    Request to get all the information of a BroadWorks Anywhere instance.

    The response is either ``GroupBroadWorksAnywhereGetInstanceResponse17()`` or
    ``ErrorResponse()``. Replaced by: ``GroupBroadWorksAnywhereGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksAnywhereGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a BroadWorks Anywhere instance.

    The response is either ``GroupBroadWorksAnywhereGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobileManagerActivationRequest(OCIRequest):
    """
    Activates or Deactivates the BroadWorks Mobile Manager.

    The deactivationReason is required when isActive is set to false.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        deactivation_reason: deactivationReason
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("deactivation_reason", "deactivationReason", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    deactivation_reason: str = Field(type=str, required=False, mutable=False)


class GroupBroadWorksMobileManagerAddHomeZoneRequest(OCIRequest):
    """
    Add a home zone to the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        home_zone_domain_name: homeZoneDomainName
        mobile_country_code: mobileCountryCode
        mobile_network_code: mobileNetworkCode
        location_area_code: locationAreaCode
        cell_identity: cellIdentity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("home_zone_domain_name", "homeZoneDomainName", str, is_required=True),
        E("mobile_country_code", "mobileCountryCode", str, is_required=True),
        E("mobile_network_code", "mobileNetworkCode", str, is_required=True),
        E("location_area_code", "locationAreaCode", str, is_required=True),
        E("cell_identity", "cellIdentity", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    home_zone_domain_name: str = Field(type=str, required=True, mutable=False)
    mobile_country_code: str = Field(type=str, required=True, mutable=False)
    mobile_network_code: str = Field(type=str, required=True, mutable=False)
    location_area_code: str = Field(type=str, required=True, mutable=False)
    cell_identity: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobileManagerAddRequest(OCIRequest):
    """
    Add the BroadWorks Mobile Manager.

    Only one BroadWorks Mobile Manager can be added per group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        information_file: informationFile
        certificate_file: certificateFile
        is_active: isActive
        local_to_carrier: localToCarrier
        max_tx_per_second_enabled: maxTxPerSecondEnabled
        max_tx_per_second: maxTxPerSecond
        tldn_enabled: tldnEnabled
        generic_number_enabled: genericNumberEnabled
        mobile_state_check_enabled: mobileStateCheckEnabled
        location_based_services_enabled: locationBasedServicesEnabled
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("information_file", "informationFile", str, is_required=True),
        E("certificate_file", "certificateFile", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("local_to_carrier", "localToCarrier", bool, is_required=True),
        E("max_tx_per_second_enabled", "maxTxPerSecondEnabled", bool, is_required=True),
        E("max_tx_per_second", "maxTxPerSecond", int),
        E("tldn_enabled", "tldnEnabled", bool, is_required=True),
        E("generic_number_enabled", "genericNumberEnabled", bool, is_required=True),
        E("mobile_state_check_enabled", "mobileStateCheckEnabled", bool, is_required=True),
        E(
            "location_based_services_enabled", "locationBasedServicesEnabled", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    information_file: str = Field(type=str, required=True, mutable=False)
    certificate_file: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    local_to_carrier: bool = Field(type=bool, required=True, mutable=False)
    max_tx_per_second_enabled: bool = Field(type=bool, required=True, mutable=False)
    max_tx_per_second: int = Field(type=int, required=False, mutable=False)
    tldn_enabled: bool = Field(type=bool, required=True, mutable=False)
    generic_number_enabled: bool = Field(type=bool, required=True, mutable=False)
    mobile_state_check_enabled: bool = Field(type=bool, required=True, mutable=False)
    location_based_services_enabled: bool = Field(type=bool, required=True, mutable=False)


class GroupBroadWorksMobileManagerDeleteHomeZoneListRequest(OCIRequest):
    """
    Delete a list of home zones from the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        home_zone_id: homeZoneId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("home_zone_id", "homeZoneId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    home_zone_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobileManagerDeleteHomeZoneRequest(OCIRequest):
    """
    Delete a home zone from the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        home_zone_id: homeZoneId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("home_zone_id", "homeZoneId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    home_zone_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobileManagerDeleteRequest(OCIRequest):
    """
    Delete the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobileManagerGetDomainListRequest(OCIRequest):
    """
    Get the list of domains of the BroadWorks Mobile Manager.

    The response is either ``GroupBroadWorksMobileManagerGetDomainListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobileManagerGetHomeZoneListRequest(OCIRequest):
    """
    Get the list of home zones of the BroadWorks Mobile Manager.

    The response is either ``GroupBroadWorksMobileManagerGetHomeZoneListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobileManagerGetHomeZoneRequest(OCIRequest):
    """
    Get a home zone from the BroadWorks Mobile Manager.

    The response is either ``GroupBroadWorksMobileManagerGetHomeZoneResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        home_zone_id: homeZoneId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("home_zone_id", "homeZoneId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    home_zone_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobileManagerGetRequest(OCIRequest):
    """
    Get the BroadWorks Mobile Manager.

    The response is either ``GroupBroadWorksMobileManagerGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobileManagerModifyHomeZoneRequest(OCIRequest):
    """
    Modify an existing home zone in the BroadWorks Mobile Manager.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        home_zone_id: homeZoneId
        home_zone_domain_name: homeZoneDomainName
        mobile_country_code: mobileCountryCode
        mobile_network_code: mobileNetworkCode
        location_area_code: locationAreaCode
        cell_identity: cellIdentity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("home_zone_id", "homeZoneId", str, is_required=True),
        E("home_zone_domain_name", "homeZoneDomainName", str),
        E("mobile_country_code", "mobileCountryCode", str),
        E("mobile_network_code", "mobileNetworkCode", str),
        E("location_area_code", "locationAreaCode", str),
        E("cell_identity", "cellIdentity", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    home_zone_id: str = Field(type=str, required=True, mutable=False)
    home_zone_domain_name: str = Field(type=str, required=False, mutable=False)
    mobile_country_code: str = Field(type=str, required=False, mutable=False)
    mobile_network_code: str = Field(type=str, required=False, mutable=False)
    location_area_code: str = Field(type=str, required=False, mutable=False)
    cell_identity: str = Field(type=str, required=False, mutable=False)


class GroupBroadWorksMobileManagerModifyRequest(OCIRequest):
    """
    Modify the BroadWorks Mobile Manager settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        information_file: informationFile
        certificate_file: certificateFile
        local_to_carrier: localToCarrier
        max_tx_per_second_enabled: maxTxPerSecondEnabled
        max_tx_per_second: maxTxPerSecond
        tldn_enabled: tldnEnabled
        generic_number_enabled: genericNumberEnabled
        mobile_state_check_enabled: mobileStateCheckEnabled
        location_based_services_enabled: locationBasedServicesEnabled
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("information_file", "informationFile", str),
        E("certificate_file", "certificateFile", str),
        E("local_to_carrier", "localToCarrier", bool),
        E("max_tx_per_second_enabled", "maxTxPerSecondEnabled", bool),
        E("max_tx_per_second", "maxTxPerSecond", int),
        E("tldn_enabled", "tldnEnabled", bool),
        E("generic_number_enabled", "genericNumberEnabled", bool),
        E("mobile_state_check_enabled", "mobileStateCheckEnabled", bool),
        E("location_based_services_enabled", "locationBasedServicesEnabled", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    information_file: str = Field(type=str, required=False, mutable=False)
    certificate_file: str = Field(type=str, required=False, mutable=False)
    local_to_carrier: bool = Field(type=bool, required=False, mutable=False)
    max_tx_per_second_enabled: bool = Field(type=bool, required=False, mutable=False)
    max_tx_per_second: int = Field(type=int, required=False, mutable=False)
    tldn_enabled: bool = Field(type=bool, required=False, mutable=False)
    generic_number_enabled: bool = Field(type=bool, required=False, mutable=False)
    mobile_state_check_enabled: bool = Field(type=bool, required=False, mutable=False)
    location_based_services_enabled: bool = Field(type=bool, required=False, mutable=False)


class GroupBroadWorksMobileManagerSendCarrierFilesRequest(OCIRequest):
    """
    Sends an email with the carrier information and certificate files.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        email_to: emailTo
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("email_to", "emailTo", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    email_to: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobilityGetRequest(OCIRequest):
    """
    Get the groups BroadWorks Mobility settings.

    The response is either a ``GroupBroadWorksMobilityGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobilityGetRequest19sp1(OCIRequest):
    """
    Get the group's BroadWorks Mobility settings.

    The response is either a ``GroupBroadWorksMobilityGetResponse19sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobilityMobileSubscriberDirectoryNumberAssignListRequest(OCIRequest):
    """
    Assign Mobile Subscriber Directory Numbers to a group.

    It is possible to add a single DN,or a list of DNs.  . This command is applicable only
    for group in a service provider and will fail for a group in an enterprise.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        mobile_subscriber_directory_number: mobileSubscriberDirectoryNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "mobile_subscriber_directory_number", "mobileSubscriberDirectoryNumber", str,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    mobile_subscriber_directory_number: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupBroadWorksMobilityMobileSubscriberDirectoryNumberGetAvailableListRequest(OCIRequest):
    """
    Request a list of available Mobile Subscriber Directory Numbers not yet assigned to
    any user.

    . This command is applicable only for group in a service provider and will fail for a
    group in an enterprise.

    The response is either
    ``GroupBroadWorksMobilityMobileSubscriberDirectoryNumberGetAvailableListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupBroadWorksMobilityMobileSubscriberDirectoryNumberUnassignListRequest(OCIRequest):
    """
    Unassign Mobile Subscriber Directory Numbers from a group.

    It is possible to unassign either: a single DN, or a list of DNs.  . This command is
    applicable only for group in a service provider and will fail for a group in an
    enterprise.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        mobile_subscriber_directory_number: mobileSubscriberDirectoryNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "mobile_subscriber_directory_number", "mobileSubscriberDirectoryNumber", str,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    mobile_subscriber_directory_number: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupBroadWorksMobilityModifyRequest(OCIRequest):
    """
    Modify the group level broadworks mobility service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_setting_level: useSettingLevel
        enable_location_services: enableLocationServices
        enable_msrn_lookup: enableMSRNLookup
        enable_mobile_state_checking: enableMobileStateChecking
        deny_call_originations: denyCallOriginations
        deny_call_terminations: denyCallTerminations
        enable_announcement_suppression: enableAnnouncementSuppression
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_setting_level", "useSettingLevel", str),
        E("enable_location_services", "enableLocationServices", bool),
        E("enable_msrn_lookup", "enableMSRNLookup", bool),
        E("enable_mobile_state_checking", "enableMobileStateChecking", bool),
        E("deny_call_originations", "denyCallOriginations", bool),
        E("deny_call_terminations", "denyCallTerminations", bool),
        E("enable_announcement_suppression", "enableAnnouncementSuppression", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_setting_level: str = Field(type=str, required=False, mutable=False)
    enable_location_services: bool = Field(type=bool, required=False, mutable=False)
    enable_msrn_lookup: bool = Field(type=bool, required=False, mutable=False)
    enable_mobile_state_checking: bool = Field(type=bool, required=False, mutable=False)
    deny_call_originations: bool = Field(type=bool, required=False, mutable=False)
    deny_call_terminations: bool = Field(type=bool, required=False, mutable=False)
    enable_announcement_suppression: bool = Field(type=bool, required=False, mutable=False)


class GroupCPEConfigRebuildConfigFileRequest(OCIRequest):
    """
    Rebuild the group default config file for the specified device type.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        force: force
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("force", "force", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    force: bool = Field(type=bool, required=False, mutable=False)


class GroupCPEConfigRebuildDeviceConfigFileRequest(OCIRequest):
    """
    Rebuild the config file for a specified device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        force: force
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("force", "force", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    force: bool = Field(type=bool, required=False, mutable=False)


class GroupCPEConfigReorderDeviceLinePortsRequest(OCIRequest):
    """
    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
    ``GroupAccessDeviceGetRequest16()`` command.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        ordered_line_port_list: orderedLinePortList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("ordered_line_port_list", "orderedLinePortList", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    ordered_line_port_list: str = Field(type=str, required=True, mutable=False)


class GroupCPEConfigResetDeviceRequest(OCIRequest):
    """
    Reset a specific group device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class GroupCPEConfigResetDeviceTypeRequest(OCIRequest):
    """
    Reset all the devices of the specified device type in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)


class GroupCallCapacityManagementAddInstanceRequest(OCIRequest):
    """
    Adds a Call Capacity Management group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        max_active_calls_allowed: maxActiveCallsAllowed
        max_incoming_active_calls_allowed: maxIncomingActiveCallsAllowed
        max_outgoing_active_calls_allowed: maxOutgoingActiveCallsAllowed
        become_default_group_for_new_users: becomeDefaultGroupForNewUsers
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("max_active_calls_allowed", "maxActiveCallsAllowed", int, is_required=True),
        E("max_incoming_active_calls_allowed", "maxIncomingActiveCallsAllowed", int),
        E("max_outgoing_active_calls_allowed", "maxOutgoingActiveCallsAllowed", int),
        E(
            "become_default_group_for_new_users", "becomeDefaultGroupForNewUsers", bool,
            is_required=True,
        ),
        E("user_id", "userId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    max_active_calls_allowed: int = Field(type=int, required=True, mutable=False)
    max_incoming_active_calls_allowed: int = Field(type=int, required=False, mutable=False)
    max_outgoing_active_calls_allowed: int = Field(type=int, required=False, mutable=False)
    become_default_group_for_new_users: bool = Field(type=bool, required=True, mutable=False)
    user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupCallCapacityManagementAddUserListRequest(OCIRequest):
    """
    Adds one or more users to a Call Capacity Management group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCapacityManagementDeleteInstanceListRequest(OCIRequest):
    """
    Deletes one or more Call Capacity Management groups.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallCapacityManagementDeleteUserListRequest(OCIRequest):
    """
    Deletes one or more users from a Call Capacity Management group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCapacityManagementGetInstanceListRequest(OCIRequest):
    """
    Request to get a list of Call Capacity Management instances within a group.

    The response is either ``GroupCallCapacityManagementGetInstanceListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCapacityManagementGetInstanceRequest(OCIRequest):
    """
    Gets a Call Capacity Management group.

    The response is either ``GroupCallCapacityManagementGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAddSupervisorListRequest(OCIRequest):
    """
    Add supervisor(s) to a call center.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        supervisor_user_id: supervisorUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    supervisor_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentThresholdProfileAddAgentListRequest(OCIRequest):
    """
    Add agent(s) to a Agent Threshold Profile.

    When an agent is assigned (added )to a profile, it is automatically unassigned
    (deleted) from the previous profile it was assigned to.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        profile_name: profileName
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)
    agent_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentThresholdProfileAddRequest(OCIRequest):
    """
    Add a new Call Center Agent Threshold Profile in a Group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        profile_name: profileName
        profile_description: profileDescription
        threshold_current_call_state_idle_time_yellow:
            thresholdCurrentCallStateIdleTimeYellow
        threshold_current_call_state_idle_time_red: thresholdCurrentCallStateIdleTimeRed
        threshold_current_call_state_on_call_time_yellow:
            thresholdCurrentCallStateOnCallTimeYellow
        threshold_current_call_state_on_call_time_red:
            thresholdCurrentCallStateOnCallTimeRed
        threshold_current_agent_state_unavailable_time_yellow:
            thresholdCurrentAgentStateUnavailableTimeYellow
        threshold_current_agent_state_unavailable_time_red:
            thresholdCurrentAgentStateUnavailableTimeRed
        threshold_average_busy_in_time_yellow: thresholdAverageBusyInTimeYellow
        threshold_average_busy_in_time_red: thresholdAverageBusyInTimeRed
        threshold_average_busy_out_time_yellow: thresholdAverageBusyOutTimeYellow
        threshold_average_busy_out_time_red: thresholdAverageBusyOutTimeRed
        threshold_average_wrap_up_time_yellow: thresholdAverageWrapUpTimeYellow
        threshold_average_wrap_up_time_red: thresholdAverageWrapUpTimeRed
        enable_notification_email: enableNotificationEmail
        notification_email_address: notificationEmailAddress
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
        E("profile_description", "profileDescription", str),
        E(
            "threshold_current_call_state_idle_time_yellow",
            "thresholdCurrentCallStateIdleTimeYellow", int,
        ),
        E(
            "threshold_current_call_state_idle_time_red",
            "thresholdCurrentCallStateIdleTimeRed", int,
        ),
        E(
            "threshold_current_call_state_on_call_time_yellow",
            "thresholdCurrentCallStateOnCallTimeYellow", int,
        ),
        E(
            "threshold_current_call_state_on_call_time_red",
            "thresholdCurrentCallStateOnCallTimeRed", int,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_yellow",
            "thresholdCurrentAgentStateUnavailableTimeYellow", int,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_red",
            "thresholdCurrentAgentStateUnavailableTimeRed", int,
        ),
        E("threshold_average_busy_in_time_yellow", "thresholdAverageBusyInTimeYellow", int),
        E("threshold_average_busy_in_time_red", "thresholdAverageBusyInTimeRed", int),
        E("threshold_average_busy_out_time_yellow", "thresholdAverageBusyOutTimeYellow", int),
        E("threshold_average_busy_out_time_red", "thresholdAverageBusyOutTimeRed", int),
        E("threshold_average_wrap_up_time_yellow", "thresholdAverageWrapUpTimeYellow", int),
        E("threshold_average_wrap_up_time_red", "thresholdAverageWrapUpTimeRed", int),
        E("enable_notification_email", "enableNotificationEmail", bool, is_required=True),
        E("notification_email_address", "notificationEmailAddress", str),
        E("agent_user_id", "agentUserId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)
    profile_description: str = Field(type=str, required=False, mutable=False)
    threshold_current_call_state_idle_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_idle_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_on_call_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_on_call_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_agent_state_unavailable_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_agent_state_unavailable_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_in_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_in_time_red: int = Field(type=int, required=False, mutable=False)
    threshold_average_busy_out_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_out_time_red: int = Field(type=int, required=False, mutable=False)
    threshold_average_wrap_up_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_wrap_up_time_red: int = Field(type=int, required=False, mutable=False)
    enable_notification_email: bool = Field(type=bool, required=True, mutable=False)
    notification_email_address: str = Field(type=str, required=False, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupCallCenterAgentThresholdProfileDeleteAgentListRequest(OCIRequest):
    """
    Delete agent(s) from a Agent Threshold Profile.

    Agents cannot be unassigned (deleted) directly from the default profile, they need to
    be assigned (added) to a different profile.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        profile_name: profileName
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)
    agent_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentThresholdProfileDeleteRequest(OCIRequest):
    """
    Deletes an existing Call Center Agent Threshold Profile in a Group.

    The default profile cannot be deleted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        profile_name: profileName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentThresholdProfileGetListRequest(OCIRequest):
    """
    Get the list of Call Center Agent Threshold Profiles in the Group.

    The response is either ``GroupCallCenterAgentThresholdProfileGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentThresholdProfileGetRequest(OCIRequest):
    """
    Gets an existing non-default Call Center Agent Threshold Profile in a Group.

    The response is either a ``GroupCallCenterAgentThresholdProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        profile_name: profileName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentUnavailableCodeAddRequest(OCIRequest):
    """
    Add a Call Center Agent Unavailable Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        code: code
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("code", "code", str, is_required=True),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterAgentUnavailableCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Agent Unavailable Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentUnavailableCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Agent Unavailable Codes.

    The response is either ``GroupCallCenterAgentUnavailableCodeGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentUnavailableCodeGetRequest(OCIRequest):
    """
    Get a Call Center Agent Unavailable Code.

    The response is either ``GroupCallCenterAgentUnavailableCodeGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentUnavailableCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Agent Unavailable Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterAgentUnavailableCodeSettingsGetRequest(OCIRequest):
    """
    Request the group level data associated with Call Center Agents Unavailable Code
    Settings.

    The response is either an ``GroupCallCenterAgentUnavailableCodeSettingsGetResponse()``
    or an ``ErrorResponse()``. Replaced by
    ``GroupCallCenterAgentUnavailableCodeSettingsGetRequest17sp4()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAgentUnavailableCodeSettingsGetRequest17sp4(OCIRequest):
    """
    Request the group level data associated with Call Center Agents Unavailable Code
    Settings.

    The response is either a
    ``GroupCallCenterAgentUnavailableCodeSettingsGetResponse17sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterBouncedCallGetRequest(OCIRequest):
    """
    Get a call center's bounced call settings.

    The response is either a ``GroupCallCenterBouncedCallGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``GroupCallCenterBouncedCallGetRequest17()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterBouncedCallGetRequest17(OCIRequest):
    """
    Get a call center's bounced call settings.

    The response is either a ``GroupCallCenterBouncedCallGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterBouncedCallModifyRequest(OCIRequest):
    """
    Modify a call center's bounced call settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        number_of_rings_before_bouncing_call: numberOfRingsBeforeBouncingCall
        enable_transfer: enableTransfer
        transfer_phone_number: transferPhoneNumber
        bounce_call_when_agent_unavailable: bounceCallWhenAgentUnavailable
        alert_call_center_call_on_hold: alertCallCenterCallOnHold
        alert_call_center_call_on_hold_seconds: alertCallCenterCallOnHoldSeconds
        bounce_call_center_call_on_hold: bounceCallCenterCallOnHold
        bounce_call_center_call_on_hold_seconds: bounceCallCenterCallOnHoldSeconds
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("number_of_rings_before_bouncing_call", "numberOfRingsBeforeBouncingCall", int),
        E("enable_transfer", "enableTransfer", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("bounce_call_when_agent_unavailable", "bounceCallWhenAgentUnavailable", bool),
        E("alert_call_center_call_on_hold", "alertCallCenterCallOnHold", bool),
        E("alert_call_center_call_on_hold_seconds", "alertCallCenterCallOnHoldSeconds", int),
        E("bounce_call_center_call_on_hold", "bounceCallCenterCallOnHold", bool),
        E(
            "bounce_call_center_call_on_hold_seconds",
            "bounceCallCenterCallOnHoldSeconds", int,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    number_of_rings_before_bouncing_call: int = Field(type=int, required=False, mutable=False)
    enable_transfer: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    bounce_call_when_agent_unavailable: bool = Field(type=bool, required=False, mutable=False)
    alert_call_center_call_on_hold: bool = Field(type=bool, required=False, mutable=False)
    alert_call_center_call_on_hold_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    bounce_call_center_call_on_hold: bool = Field(type=bool, required=False, mutable=False)
    bounce_call_center_call_on_hold_seconds: int = Field(
        type=int, required=False, mutable=False,
    )


class GroupCallCenterCallDispositionCodeAddRequest(OCIRequest):
    """
    Add a Call Center Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterCallDispositionCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterCallDispositionCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Call Disposition Codes.

    The response is either ``GroupCallCenterCallDispositionCodeGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterCallDispositionCodeGetRequest(OCIRequest):
    """
    Get a Call Center Call Disposition Code.

    The response is either ``GroupCallCenterCallDispositionCodeGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterCallDispositionCodeGetUsageListRequest(OCIRequest):
    """
    Get the list of Call Centers and Route Points using the specified disposition code.

    The response is either ``GroupCallCenterCallDispositionCodeGetUsageListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterCallDispositionCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterComfortMessageBypassGetRequest(OCIRequest):
    """
    Get a call center's comfort message bypass settings.

    The response is either a ``GroupCallCenterComfortMessageBypassGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterComfortMessageBypassGetRequest17(OCIRequest):
    """
    Get a call center's comfort message bypass settings.

    The response is either a ``GroupCallCenterComfortMessageBypassGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterComfortMessageBypassGetRequest20(OCIRequest):
    """
    Get a call center's comfort message bypass settings.

    The response is either a ``GroupCallCenterComfortMessageBypassGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterCurrentAndPastDNISGetListRequest(OCIRequest):
    """
    Request to get all the past and current DNIS for the Call Center for the group.

    The response is either ``GroupCallCenterCurrentAndPastDNISGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterDeleteAgentListRequest(OCIRequest):
    """
    Delete agent(s) from a call center.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    agent_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterDeleteInstanceRequest(OCIRequest):
    """
    Delete a Call Center instance from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterDeleteSupervisorListRequest(OCIRequest):
    """
    Delete supervisor(s) from a call center.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        supervisor_user_id: supervisorUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    supervisor_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterDistinctiveRingingGetRequest(OCIRequest):
    """
    Get the distinctive ringing configuration values for call center.

    The response is either a ``GroupCallCenterDistinctiveRingingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterDistinctiveRingingModifyRequest(OCIRequest):
    """
    Modify the distinctive ringing configuration values for call center.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        distinctive_ringing_call_center_calls: distinctiveRingingCallCenterCalls
        distinctive_ringing_ring_pattern_for_call_center:
            distinctiveRingingRingPatternForCallCenter
        distinctive_ringing_force_delivery_ring_pattern:
            distinctiveRingingForceDeliveryRingPattern
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("distinctive_ringing_call_center_calls", "distinctiveRingingCallCenterCalls", bool),
        E(
            "distinctive_ringing_ring_pattern_for_call_center",
            "distinctiveRingingRingPatternForCallCenter", str,
        ),
        E(
            "distinctive_ringing_force_delivery_ring_pattern",
            "distinctiveRingingForceDeliveryRingPattern", str,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    distinctive_ringing_call_center_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    distinctive_ringing_ring_pattern_for_call_center: str = Field(
        type=str, required=False, mutable=False,
    )
    distinctive_ringing_force_delivery_ring_pattern: str = Field(
        type=str, required=False, mutable=False,
    )


class GroupCallCenterEnhancedGetRequest(OCIRequest):
    """
    Request to get the Call Center Enhanced configuration data for a Call Center.

    The response is either ``GroupCallCenterEnhancedGetResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterGetInstanceResponse16()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedModifyRequest(OCIRequest):
    """
    Modify the Call Center Enhanced configuration data for a Call Center.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterModifyInstanceRequest16()``

    Attributes:
        service_user_id: serviceUserId
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)


class GroupCallCenterEnhancedReportingBrandingGetRequest(OCIRequest):
    """
    Request to get the group branding information.

    The response is either ``GroupCallCenterEnhancedReportingBrandingGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingGetAvailableReportTemplateListRequest(OCIRequest):
    """
    Request to get all enabled call center report template for a group.

    The response is either a
    ``GroupCallCenterEnhancedReportingGetAvailableReportTemplateListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingGetRequest(OCIRequest):
    """
    Request to get a group level call center enhanced reporting setting.

    The response is either a ``GroupCallCenterEnhancedReportingGetResponse()`` or an
    ``ErrorResponse()``. Replaced by ``GroupCallCenterEnhancedReportingGetRequest19()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingGetRequest19(OCIRequest):
    """
    Request to get a group level call center enhanced reporting setting.

    The response is either a ``GroupCallCenterEnhancedReportingGetResponse19()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingModifyRequest(OCIRequest):
    """
    Request to modify group level call center enhanced reporting settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``GroupCallCenterEnhancedReportingModifyRequest19()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        reporting_server: reportingServer
        web_statistic_source: webStatisticSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("reporting_server", "reportingServer", str),
        E("web_statistic_source", "webStatisticSource", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    reporting_server: str = Field(type=str, required=False, mutable=False)
    web_statistic_source: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterEnhancedReportingModifyRequest19(OCIRequest):
    """
    Request to modify group level call center enhanced reporting settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        reporting_server: reportingServer
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("reporting_server", "reportingServer", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    reporting_server: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterEnhancedReportingReportTemplateDeleteRequest(OCIRequest):
    """
    Request to delete a group level call center report template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingReportTemplateGetListRequest(OCIRequest):
    """
    Request to get group level call center report template list.

    The response is either a
    ``GroupCallCenterEnhancedReportingReportTemplateGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingReportTemplateGetRequest(OCIRequest):
    """
    Request to get a group level call center report template.

    The response is either a
    ``GroupCallCenterEnhancedReportingReportTemplateGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingScheduledReportDeleteRequest(OCIRequest):
    """
    Request to delete a group level call center reporting scheduled report.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingScheduledReportGetReportTemplateUsageListRequest(OCIRequest):
    """
    Request to get all the call center reporting scheduled report in a group that uses a
    given group level report template.

    The response is either a
    ``GroupCallCenterEnhancedReportingScheduledReportGetReportTemplateUsageListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingScheduledReportGetRequest(OCIRequest):
    """
    Request to get a group level call center reporting scheduled report.

    The response is either a
    ``GroupCallCenterEnhancedReportingScheduledReportGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterForcedForwardingGetRequest(OCIRequest):
    """
    Get a call center's forced forwarding settings.

    The response is either a ``GroupCallCenterForcedForwardingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterForcedForwardingGetRequest17(OCIRequest):
    """
    Get a call center's forced forwarding settings.

    The response is either a ``GroupCallCenterForcedForwardingGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterForcedForwardingGetRequest20(OCIRequest):
    """
    Get a call center's forced forwarding settings.

    The response is either a ``GroupCallCenterForcedForwardingGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetAnnouncementRequest(OCIRequest):
    """
    Get a call center's announcement settings.

    The response is either a ``GroupCallCenterGetAnnouncementResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetAnnouncementRequest14sp6(OCIRequest):
    """
    Get a call center's announcement settings.

    The response is either a ``GroupCallCenterGetAnnouncementResponse14sp6()`` or an
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterGetAnnouncementRequest16()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetAnnouncementRequest16(OCIRequest):
    """
    Get a call center's announcement settings.

    The response is either a ``GroupCallCenterGetAnnouncementResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetAnnouncementRequest17(OCIRequest):
    """
    Get a call center's announcement settings.

    The response is either a ``GroupCallCenterGetAnnouncementResponse17()`` or an
    ``ErrorResponse()``. Replaced by ``GroupCallCenterGetAnnouncementRequest17sp4()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetAnnouncementRequest17sp4(OCIRequest):
    """
    Get a call center's announcement settings.

    The response is either a ``GroupCallCenterGetAnnouncementResponse17sp4()`` or an
    ``ErrorResponse()``. Replaced by: ``GroupCallCenterGetAnnouncementRequest19()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetAnnouncementRequest19(OCIRequest):
    """
    Get a call center's announcement settings.

    The response is either a ``GroupCallCenterGetAnnouncementResponse19()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetAnnouncementRequest20(OCIRequest):
    """
    Get a call center's announcement settings.

    The response is either a ``GroupCallCenterGetAnnouncementResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetDNISListRequest(OCIRequest):
    """
    Get a list of DNIS that are configured for a Call Center.

    The response is either ``GroupCallCenterGetDNISListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetDistinctiveRingingRequest(OCIRequest):
    """
    Get the distinctive ringing configuration values for call center.

    The response is either a ``GroupCallCenterGetDistinctiveRingingResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceListRequest(OCIRequest):
    """
    Get a list of Call Center instances within a group.

    The response is either ``GroupCallCenterGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterGetInstanceQueueStatusRequest(OCIRequest):
    """
    Get Call Center queue status.

    The response is either ``GroupCallCenterGetInstanceQueueStatusResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceRequest14(OCIRequest):
    """
    Request to get all the information of a Call Center instance.

    The response is either ``GroupCallCenterGetInstanceResponse14()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterGetInstanceRequest14sp3()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceRequest14sp3(OCIRequest):
    """
    Request to get all the information of a Call Center instance.

    The response is either ``GroupCallCenterGetInstanceResponse14sp3()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterGetInstanceRequest14sp9()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceRequest14sp9(OCIRequest):
    """
    Request to get all the information of a Call Center instance.

    The response is either ``GroupCallCenterGetInstanceResponse14sp9()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterGetInstanceRequest16()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceRequest16(OCIRequest):
    """
    Request to get all the information of a Call Center instance.

    The response is either ``GroupCallCenterGetInstanceResponse16()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceRequest17(OCIRequest):
    """
    Request to get all the information of a Call Center instance.

    The response is either ``GroupCallCenterGetInstanceResponse17()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceRequest17sp1(OCIRequest):
    """
    Request to get all the information of a Call Center instance.

    The response is either ``GroupCallCenterGetInstanceResponse17sp1()`` or
    ``ErrorResponse()``. Replaced by: ``GroupCallCenterGetInstanceRequest17sp3()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceRequest17sp3(OCIRequest):
    """
    Request to get all the information of a Call Center instance.

    The response is either ``GroupCallCenterGetInstanceResponse17sp3()`` or
    ``ErrorResponse()``. Replaced by ``GroupCallCenterGetInstanceRequest19()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceRequest19(OCIRequest):
    """
    Request to get all the information of a Call Center instance.

    The response is either ``GroupCallCenterGetInstanceResponse19()`` or
    ``ErrorResponse()``. Replaced by: ``GroupCallCenterGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Call Center instance.

    The response is either ``GroupCallCenterGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceStatisticsReportingRequest(OCIRequest):
    """
    Request to get the call center statistics reporting settings.

    The response is either ``GroupCallCenterGetInstanceStatisticsReportingResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterGetInstanceStatisticsReportingRequest16()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceStatisticsReportingRequest16(OCIRequest):
    """
    Request to get the call center statistics reporting settings.

    The response is either ``GroupCallCenterGetInstanceStatisticsReportingResponse16()``
    or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceStatisticsReportingRequest17sp1(OCIRequest):
    """
    Request to get the call center statistics reporting settings.

    The response is either
    ``GroupCallCenterGetInstanceStatisticsReportingResponse17sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetInstanceStatisticsRequest13mp8(OCIRequest):
    """
    Get Call Center queue and agent statistics.

    The response is either ``GroupCallCenterGetInstanceStatisticsResponse13mp8()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterGetInstanceStatisticsRequest14sp9()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetRequest(OCIRequest):
    """
    Request the Group level data associated with Call Center.

    The response is either a ``GroupCallCenterGetResponse()`` or an ``ErrorResponse()``.
    Replaced by ``GroupCallCenterGetRequest17sp4()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetRequest17sp4(OCIRequest):
    """
    Request the Group level data associated with Call Center.

    The response is either a ``GroupCallCenterGetResponse17sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetRoutingPolicyRequest(OCIRequest):
    """
    Request the group call center routing policy.

    The response is either a ``GroupCallCenterGetRoutingPolicyResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetSupervisorListRequest(OCIRequest):
    """
    Get a list of supervisors assigned to a call center.

    Only users in the same group or enterprise as this call center can successfully
    execute this request.

    The response is either a ``GroupCallCenterGetSupervisorListResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterSupervisorReportingGetRequest()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetSupervisorListRequest16(OCIRequest):
    """
    Get a list of supervisors assigned to a call center.

    The response is either a ``GroupCallCenterGetSupervisorListResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterGetUnlicensedAgentListRequest(OCIRequest):
    """
    Get a list of unlicensed users who are preventing the Call Center from upgrading to
    another type.

    The response is either ``GroupCallCenterGetUnlicensedAgentListRequest()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        call_center_type: callCenterType
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("call_center_type", "callCenterType", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    call_center_type: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterHolidayServiceGetRequest(OCIRequest):
    """
    Get a call center's holiday service settings.

    The response is either a ``GroupCallCenterHolidayServiceGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterHolidayServiceGetRequest17(OCIRequest):
    """
    Get a call center's holiday service settings.

    The response is either a ``GroupCallCenterHolidayServiceGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterHolidayServiceGetRequest17sp1(OCIRequest):
    """
    Get a call center's holiday service settings.

    The response is either a ``GroupCallCenterHolidayServiceGetResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterHolidayServiceGetRequest20(OCIRequest):
    """
    Get a call center's holiday service settings.

    The response is either a ``GroupCallCenterHolidayServiceGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterModifyDNISParametersRequest(OCIRequest):
    """
    Modify the setting that are configured for all the DNIS in a Call Center.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        display_dnis_number: displayDNISNumber
        display_dnis_name: displayDNISName
        promote_calls_from_priority1to0: promoteCallsFromPriority1to0
        promote_calls_from_priority2to1: promoteCallsFromPriority2to1
        promote_calls_from_priority3to2: promoteCallsFromPriority3to2
        promote_calls_from_priority1to0_seconds: promoteCallsFromPriority1to0Seconds
        promote_calls_from_priority2to1_seconds: promoteCallsFromPriority2to1Seconds
        promote_calls_from_priority3to2_seconds: promoteCallsFromPriority3to2Seconds
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("display_dnis_number", "displayDNISNumber", bool),
        E("display_dnis_name", "displayDNISName", bool),
        E("promote_calls_from_priority1to0", "promoteCallsFromPriority1to0", bool),
        E("promote_calls_from_priority2to1", "promoteCallsFromPriority2to1", bool),
        E("promote_calls_from_priority3to2", "promoteCallsFromPriority3to2", bool),
        E(
            "promote_calls_from_priority1to0_seconds",
            "promoteCallsFromPriority1to0Seconds", int,
        ),
        E(
            "promote_calls_from_priority2to1_seconds",
            "promoteCallsFromPriority2to1Seconds", int,
        ),
        E(
            "promote_calls_from_priority3to2_seconds",
            "promoteCallsFromPriority3to2Seconds", int,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    display_dnis_number: bool = Field(type=bool, required=False, mutable=False)
    display_dnis_name: bool = Field(type=bool, required=False, mutable=False)
    promote_calls_from_priority1to0: bool = Field(type=bool, required=False, mutable=False)
    promote_calls_from_priority2to1: bool = Field(type=bool, required=False, mutable=False)
    promote_calls_from_priority3to2: bool = Field(type=bool, required=False, mutable=False)
    promote_calls_from_priority1to0_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    promote_calls_from_priority2to1_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    promote_calls_from_priority3to2_seconds: int = Field(
        type=int, required=False, mutable=False,
    )


class GroupCallCenterModifyDistinctiveRingingRequest(OCIRequest):
    """
    Modify the distinctive ringing configuration values for call center.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        distinctive_ringing_call_center_calls: distinctiveRingingCallCenterCalls
        distinctive_ringing_ring_pattern_for_call_center:
            distinctiveRingingRingPatternForCallCenter
        distinctive_ringing_force_delivery_ring_pattern:
            distinctiveRingingForceDeliveryRingPattern
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("distinctive_ringing_call_center_calls", "distinctiveRingingCallCenterCalls", bool),
        E(
            "distinctive_ringing_ring_pattern_for_call_center",
            "distinctiveRingingRingPatternForCallCenter", str,
        ),
        E(
            "distinctive_ringing_force_delivery_ring_pattern",
            "distinctiveRingingForceDeliveryRingPattern", str,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    distinctive_ringing_call_center_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    distinctive_ringing_ring_pattern_for_call_center: str = Field(
        type=str, required=False, mutable=False,
    )
    distinctive_ringing_force_delivery_ring_pattern: str = Field(
        type=str, required=False, mutable=False,
    )


class GroupCallCenterModifyInstanceStatisticsReportingRequest(OCIRequest):
    """
    Modify the Call Center statistics reporting frequency and destination.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterModifyInstanceStatisticsReportingRequest14sp9()``

    Attributes:
        service_user_id: serviceUserId
        clear_today_statistics: clearTodayStatistics
        generate_daily_report: generateDailyReport
        collection_period_minutes: collectionPeriodMinutes
        reporting_email_address1: reportingEmailAddress1
        reporting_email_address2: reportingEmailAddress2
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("clear_today_statistics", "clearTodayStatistics", bool),
        E("generate_daily_report", "generateDailyReport", bool),
        E("collection_period_minutes", "collectionPeriodMinutes", int),
        E("reporting_email_address1", "reportingEmailAddress1", str),
        E("reporting_email_address2", "reportingEmailAddress2", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    clear_today_statistics: bool = Field(type=bool, required=False, mutable=False)
    generate_daily_report: bool = Field(type=bool, required=False, mutable=False)
    collection_period_minutes: int = Field(type=int, required=False, mutable=False)
    reporting_email_address1: str = Field(type=str, required=False, mutable=False)
    reporting_email_address2: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterModifyInstanceStatisticsReportingRequest14sp9(OCIRequest):
    """
    Modify the Call Center statistics reporting frequency and destination.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        generate_daily_report: generateDailyReport
        collection_period_minutes: collectionPeriodMinutes
        reporting_email_address1: reportingEmailAddress1
        reporting_email_address2: reportingEmailAddress2
        statistics_source: statisticsSource
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("generate_daily_report", "generateDailyReport", bool),
        E("collection_period_minutes", "collectionPeriodMinutes", int),
        E("reporting_email_address1", "reportingEmailAddress1", str),
        E("reporting_email_address2", "reportingEmailAddress2", str),
        E("statistics_source", "statisticsSource", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    generate_daily_report: bool = Field(type=bool, required=False, mutable=False)
    collection_period_minutes: int = Field(type=int, required=False, mutable=False)
    reporting_email_address1: str = Field(type=str, required=False, mutable=False)
    reporting_email_address2: str = Field(type=str, required=False, mutable=False)
    statistics_source: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterModifyInstanceStatisticsReportingRequest17sp1(OCIRequest):
    """
    Modify the Call Center statistics reporting frequency and destination.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        generate_daily_report: generateDailyReport
        collection_period_minutes: collectionPeriodMinutes
        reporting_email_address1: reportingEmailAddress1
        reporting_email_address2: reportingEmailAddress2
        statistics_source: statisticsSource
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("generate_daily_report", "generateDailyReport", bool),
        E("collection_period_minutes", "collectionPeriodMinutes", int),
        E("reporting_email_address1", "reportingEmailAddress1", str),
        E("reporting_email_address2", "reportingEmailAddress2", str),
        E("statistics_source", "statisticsSource", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    generate_daily_report: bool = Field(type=bool, required=False, mutable=False)
    collection_period_minutes: int = Field(type=int, required=False, mutable=False)
    reporting_email_address1: str = Field(type=str, required=False, mutable=False)
    reporting_email_address2: str = Field(type=str, required=False, mutable=False)
    statistics_source: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterModifyRequest(OCIRequest):
    """
    Modify the group level data associated with Call Center and the active status of Call
    Center instances.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_system_default_guard_timer: useSystemDefaultGuardTimer
        enable_guard_timer: enableGuardTimer
        guard_timer_seconds: guardTimerSeconds
        use_system_default_unavailable_settings: useSystemDefaultUnavailableSettings
        force_agent_unavailable_on_dnd_activation: forceAgentUnavailableOnDNDActivation
        force_agent_unavailable_on_personal_calls: forceAgentUnavailableOnPersonalCalls
        force_agent_unavailable_on_bounced_call_limit:
            forceAgentUnavailableOnBouncedCallLimit
        number_consecutive_bounced_calls_to_force_agent_unavailable:
            numberConsecutiveBouncedCallsToForceAgentUnavailable
        force_agent_unavailable_on_not_reachable: forceAgentUnavailableOnNotReachable
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_system_default_guard_timer", "useSystemDefaultGuardTimer", bool),
        E("enable_guard_timer", "enableGuardTimer", bool),
        E("guard_timer_seconds", "guardTimerSeconds", int),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings", bool,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation", bool,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls", bool,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit", bool,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable", int,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable", bool,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_system_default_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    enable_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    guard_timer_seconds: int = Field(type=int, required=False, mutable=False)
    use_system_default_unavailable_settings: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_dnd_activation: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_personal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_bounced_call_limit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    number_consecutive_bounced_calls_to_force_agent_unavailable: int = Field(
        type=int, required=False, mutable=False,
    )
    force_agent_unavailable_on_not_reachable: bool = Field(
        type=bool, required=False, mutable=False,
    )


class GroupCallCenterNightServiceGetRequest(OCIRequest):
    """
    Get a call center's night service settings.

    The response is either a ``GroupCallCenterNightServiceGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterNightServiceGetRequest17(OCIRequest):
    """
    Get a call center's night service settings.

    The response is either a ``GroupCallCenterNightServiceGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterNightServiceGetRequest17sp1(OCIRequest):
    """
    Get a call center's night service settings.

    The response is either a ``GroupCallCenterNightServiceGetResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterNightServiceGetRequest20(OCIRequest):
    """
    Get a call center's night service settings.

    The response is either a ``GroupCallCenterNightServiceGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterOverflowGetRequest(OCIRequest):
    """
    Get a call center's overflow settings.

    The response is either a ``GroupCallCenterOverflowGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterOverflowGetRequest17(OCIRequest):
    """
    Get a call center's overflow settings.

    The response is either a ``GroupCallCenterOverflowGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterOverflowGetRequest20(OCIRequest):
    """
    Get a call center's overflow settings.

    The response is either a ``GroupCallCenterOverflowGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterQueueCallDispositionCodeAddRequest(OCIRequest):
    """
    Add a Call Center Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("description", "description", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterQueueCallDispositionCodeDeleteRequest(OCIRequest):
    """
    Delete a Call Center Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        code: code
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterQueueCallDispositionCodeGetListRequest(OCIRequest):
    """
    Get the list of Call Center Level and Organization Level Call Disposition Codes.

    The response is either ``GroupCallCenterQueueCallDispositionCodeGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterQueueCallDispositionCodeGetRequest(OCIRequest):
    """
    Get a Call Center Call Disposition Code.

    The response is either ``GroupCallCenterQueueCallDispositionCodeGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        code: code
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterQueueCallDispositionCodeModifyRequest(OCIRequest):
    """
    Modify a Call Center Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool),
        E("description", "description", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterQueueCallDispositionCodeSettingsGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Center Call Disposition Code
    Settings.

    The response is either a
    ``GroupCallCenterQueueCallDispositionCodeSettingsGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterQueueStatusNotificationGetRequest(OCIRequest):
    """
    Get the status configuration for a given call center.

    The response is either a ``GroupCallCenterQueueStatusNotificationGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterQueueStatusNotificationModifyRequest(OCIRequest):
    """
    Set the status configuration for a given call center.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        enable_queue_status_notification: enableQueueStatusNotification
        enable_queue_depth_threshold: enableQueueDepthThreshold
        enable_waiting_time_threshold: enableWaitingTimeThreshold
        number_of_calls_threshold: numberOfCallsThreshold
        waiting_time_of_calls_threshold: waitingTimeOfCallsThreshold
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("enable_queue_status_notification", "enableQueueStatusNotification", bool),
        E("enable_queue_depth_threshold", "enableQueueDepthThreshold", bool),
        E("enable_waiting_time_threshold", "enableWaitingTimeThreshold", bool),
        E("number_of_calls_threshold", "numberOfCallsThreshold", int),
        E("waiting_time_of_calls_threshold", "waitingTimeOfCallsThreshold", int),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    enable_queue_status_notification: bool = Field(type=bool, required=False, mutable=False)
    enable_queue_depth_threshold: bool = Field(type=bool, required=False, mutable=False)
    enable_waiting_time_threshold: bool = Field(type=bool, required=False, mutable=False)
    number_of_calls_threshold: int = Field(type=int, required=False, mutable=False)
    waiting_time_of_calls_threshold: int = Field(type=int, required=False, mutable=False)


class GroupCallCenterQueueThresholdsGetRequest(OCIRequest):
    """
    Get a call center's queue Thresholds settings.

    The response is either a ``GroupCallCenterQueueThresholdsGetRequest()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterStrandedCallGetRequest(OCIRequest):
    """
    Get a call center's stranded call settings.

    The response is either a ``GroupCallCenterStrandedCallGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterStrandedCallGetRequest17(OCIRequest):
    """
    Get a call center's stranded call settings.

    The response is either a ``GroupCallCenterStrandedCallGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterStrandedCallGetRequest20(OCIRequest):
    """
    Get a call center's stranded call settings.

    The response is either a ``GroupCallCenterStrandedCallGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterStrandedCallUnavailableGetRequest(OCIRequest):
    """
    Get a call center's stranded calls - unavailable settings.

    The response is either a ``GroupCallCenterStrandedCallUnavailableGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterStrandedCallUnavailableGetRequest20(OCIRequest):
    """
    Get a call center's stranded calls - unavailable settings.

    The response is either a ``GroupCallCenterStrandedCallUnavailableGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterSupervisorReportingGetRequest(OCIRequest):
    """
    Get a list of supervisors assigned to a call center.

    Only users in the same group or enterprise as this call center can successfully
    execute this request.

    The response is either a ``GroupCallCenterSupervisorReportingGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterGetSupervisorListRequest16()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCallParkAddInstanceRequest(OCIRequest):
    """
    Adds a Call Park group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("user_id", "userId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupCallParkAddInstanceRequest16sp2(OCIRequest):
    """
    Adds a Call Park group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: recallAlternateUserId recallTo, use value
    "Parking User Only" in HSS data mode

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        user_id: userId
        recall_alternate_user_id: recallAlternateUserId
        recall_to: recallTo
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("user_id", "userId", str, is_array=True),
        E("recall_alternate_user_id", "recallAlternateUserId", str),
        E("recall_to", "recallTo", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    recall_alternate_user_id: str = Field(type=str, required=False, mutable=False)
    recall_to: str = Field(type=str, required=True, mutable=False)


class GroupCallParkDeleteInstanceRequest(OCIRequest):
    """
    Deletes a Call Park group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallParkGetInstanceListRequest(OCIRequest):
    """
    Request to get a list of Call Park group instances within a group.

    The response is either ``GroupCallParkGetInstanceListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallParkGetInstanceRequest(OCIRequest):
    """
    Gets a Call Park group.

    The response is either ``GroupCallParkGetInstanceResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallParkGetInstanceRequest16sp2(OCIRequest):
    """
    Gets a Call Park group.

    The response is either ``GroupCallParkGetInstanceResponse16sp2()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallParkGetRequest(OCIRequest):
    """
    Gets the Call Park Group settings.

    The response is either ``GroupCallParkGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallParkGetRequest16sp2(OCIRequest):
    """
    Gets the Call Park Group settings.

    The response is either ``GroupCallParkGetResponse16sp2()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallParkModifyRequest(OCIRequest):
    """
    Modifies the Group's Call Park settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: recallAlternateUserId recallRingPattern
    recallTo alternateUserRecallTimerSeconds

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        recall_timer_seconds: recallTimerSeconds
        display_timer_seconds: displayTimerSeconds
        enable_destination_announcement: enableDestinationAnnouncement
        recall_alternate_user_id: recallAlternateUserId
        recall_ring_pattern: recallRingPattern
        recall_to: recallTo
        alternate_user_recall_timer_seconds: alternateUserRecallTimerSeconds
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("recall_timer_seconds", "recallTimerSeconds", int),
        E("display_timer_seconds", "displayTimerSeconds", int),
        E("enable_destination_announcement", "enableDestinationAnnouncement", bool),
        E("recall_alternate_user_id", "recallAlternateUserId", str),
        E("recall_ring_pattern", "recallRingPattern", str),
        E("recall_to", "recallTo", str),
        E("alternate_user_recall_timer_seconds", "alternateUserRecallTimerSeconds", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    recall_timer_seconds: int = Field(type=int, required=False, mutable=False)
    display_timer_seconds: int = Field(type=int, required=False, mutable=False)
    enable_destination_announcement: bool = Field(type=bool, required=False, mutable=False)
    recall_alternate_user_id: str = Field(type=str, required=False, mutable=False)
    recall_ring_pattern: str = Field(type=str, required=False, mutable=False)
    recall_to: str = Field(type=str, required=False, mutable=False)
    alternate_user_recall_timer_seconds: int = Field(type=int, required=False, mutable=False)


class GroupCallPickupAddInstanceRequest(OCIRequest):
    """
    Adds a Call Pickup group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("user_id", "userId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupCallPickupDeleteInstanceRequest(OCIRequest):
    """
    Deletes a Call Pickup group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallPickupGetInstanceListRequest(OCIRequest):
    """
    Request to get a list of Call Pickup instances within a group.

    The response is either ``GroupCallPickupGetInstanceListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallPickupGetInstanceRequest(OCIRequest):
    """
    Gets a Call Pickup group.

    The response is either ``GroupCallPickupGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest14(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse14()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest14sp1(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse14sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest14sp4(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse14sp4()`` or an
    ``ErrorResponse()``.

    Replaced By : ``GroupCallProcessingGetPolicyRequest15()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest14sp7(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse14sp7()`` 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)

    Replaced By: ``GroupCallProcessingGetPolicyRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest15(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse15()`` or an
    ``ErrorResponse()``.

    Replaced By: ``GroupCallProcessingGetPolicyRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest15sp2(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse15sp2()`` 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)

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest16(OCIRequest):
    """
    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)

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest16sp2(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse16sp2()`` 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) The useGroupDCLIDSetting controls the Dialable
    Caller ID settings (enableDialableCallerID)

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest17(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse17()`` 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)

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest17sp3(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse17sp3()`` 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) The useGroupDCLIDSetting controls the Dialable
    Caller ID settings (enableDialableCallerID) The following elements are only used in AS
    data mode: useGroupDCLIDSetting enableDialableCallerID Replaced by
    ``GroupCallProcessingGetPolicyRequest17sp4()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest17sp4(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse17sp4()`` or an
    ``ErrorResponse()``. The useGroupCLIDSetting attribute controls the CLID settings
    (clidPolicy, emergencyClidPolicy, allowAlternateNumbersForRedirectingIdentity,
    useGroupName, allowConfigurableCLIDForRedirectingIdentity) 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) The following elements are only used in AS data
    mode: useGroupDCLIDSetting enableDialableCallerID Replaced by
    ``GroupCallProcessingGetPolicyRequest18()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest18(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse18()`` or an
    ``ErrorResponse()``. The useGroupCLIDSetting attribute controls the CLID settings
    (clidPolicy, emergencyClidPolicy, allowAlternateNumbersForRedirectingIdentity,
    useGroupName, allowDepartmentCLIDNameOverride) 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) The following elements are only used in AS data
    mode: useGroupDCLIDSetting enableDialableCallerID allowDepartmentCLIDNameOverride

    Replaced By : ``GroupCallProcessingGetPolicyRequest18sp1()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest18sp1(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse18sp1()`` or an
    ``ErrorResponse()``. The useGroupCLIDSetting attribute controls the CLID settings
    (clidPolicy,enterpriseCallsCLIDPolicy, groupCallsCLIDPolicy, emergencyClidPolicy,
    allowAlternateNumbersForRedirectingIdentity, useGroupName,
    allowDepartmentCLIDNameOverride) 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) The following elements are only used in AS data
    mode: useGroupDCLIDSetting enableDialableCallerID allowDepartmentCLIDNameOverride
    enterpriseCallsCLIDPolicy groupCallsCLIDPolicy Replaced by:
    ``GroupCallProcessingGetPolicyRequest19sp1()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingGetPolicyRequest19sp1(OCIRequest):
    """
    Request the group level data associated with Call Processing Policy.

    The response is either a ``GroupCallProcessingGetPolicyResponse19sp1()`` or an
    ``ErrorResponse()``. The useGroupCLIDSetting attribute controls the CLID settings
    (clidPolicy,enterpriseCallsCLIDPolicy, groupCallsCLIDPolicy, emergencyClidPolicy,
    allowAlternateNumbersForRedirectingIdentity, useGroupName,
    allowDepartmentCLIDNameOverride) 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) The following elements are only used in AS data
    mode: useGroupDCLIDSetting enableDialableCallerID allowDepartmentCLIDNameOverride
    enterpriseCallsCLIDPolicy groupCallsCLIDPolicy

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallProcessingModifyPolicyRequest14(OCIRequest):
    """
    Modify the group level data associated with Call Procesing Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By : ``GroupCallProcessingModifyPolicyRequest15()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_group_setting: useGroupSetting
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        network_usage_selection: networkUsageSelection
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_external_calls_via_private_dialing_plan:
            overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_group_setting", "useGroupSetting", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("network_usage_selection", "networkUsageSelection", str),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_external_calls_via_private_dialing_plan",
            "overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan", bool,
        ),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_group_setting: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_external_calls_via_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )


class GroupCallProcessingModifyPolicyRequest14sp7(OCIRequest):
    """
    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)

    Replaced By: ``GroupCallProcessingModifyPolicyRequest15sp2()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_group_clid_setting: useGroupCLIDSetting
        use_group_media_setting: useGroupMediaSetting
        use_group_call_limits_setting: useGroupCallLimitsSetting
        use_group_translation_routing_setting: useGroupTranslationRoutingSetting
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        network_usage_selection: networkUsageSelection
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_external_calls_via_private_dialing_plan:
            overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
        clid_policy: clidPolicy
        emergency_clid_policy: emergencyClidPolicy
        allow_alternate_numbers_for_redirecting_identity:
            allowAlternateNumbersForRedirectingIdentity
        use_group_name: useGroupName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_group_clid_setting", "useGroupCLIDSetting", bool),
        E("use_group_media_setting", "useGroupMediaSetting", bool),
        E("use_group_call_limits_setting", "useGroupCallLimitsSetting", bool),
        E("use_group_translation_routing_setting", "useGroupTranslationRoutingSetting", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("network_usage_selection", "networkUsageSelection", str),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_external_calls_via_private_dialing_plan",
            "overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan", bool,
        ),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_group_clid_setting: bool = Field(type=bool, required=False, mutable=False)
    use_group_media_setting: bool = Field(type=bool, required=False, mutable=False)
    use_group_call_limits_setting: bool = Field(type=bool, required=False, mutable=False)
    use_group_translation_routing_setting: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_external_calls_via_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)


class GroupCallProcessingModifyPolicyRequest15(OCIRequest):
    """
    Modify the group level data associated with Call Procesing Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupCallProcessingModifyPolicyRequest15sp2()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_group_setting: useGroupSetting
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        network_usage_selection: networkUsageSelection
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_private_call_category:
            overrideCLIDRestrictionForPrivateCallCategory
        use_enterprise_clid_for_private_call_category:
            useEnterpriseCLIDForPrivateCallCategory
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_group_setting", "useGroupSetting", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("network_usage_selection", "networkUsageSelection", str),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_group_setting: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )


class GroupCallProcessingModifyPolicyRequest15sp2(OCIRequest):
    """
    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,enterpriseCallsCLIDPolicy, groupCallsCLIDPolicy, emergencyClidPolicy,
    allowAlternateNumbersForRedirectingIdentity, useGroupName,
    allowConfigurableCLIDForRedirectingIdentity, allowDepartmentCLIDNameOverride) The
    allowDepartmentCLID attribute is automatically set to false when the useGroupName
    attribute is set to false.  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) The useGroupDCLIDSetting controls the Dialable
    Caller ID settings (enableDialableCallerID) The following elements are only used in AS
    data mode: useGroupDCLIDSetting enableDialableCallerID
    allowConfigurableCLIDForRedirectingIdentity allowDepartmentCLIDNameOverride
    allowConfigurableCLIDForRedirectingIdentity enterpriseCallsCLIDPolicy
    groupCallsCLIDPolicy

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_group_clid_setting: useGroupCLIDSetting
        use_group_media_setting: useGroupMediaSetting
        use_group_call_limits_setting: useGroupCallLimitsSetting
        use_group_translation_routing_setting: useGroupTranslationRoutingSetting
        use_group_dclid_setting: useGroupDCLIDSetting
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        network_usage_selection: networkUsageSelection
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_private_call_category:
            overrideCLIDRestrictionForPrivateCallCategory
        use_enterprise_clid_for_private_call_category:
            useEnterpriseCLIDForPrivateCallCategory
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
        clid_policy: clidPolicy
        emergency_clid_policy: emergencyClidPolicy
        allow_alternate_numbers_for_redirecting_identity:
            allowAlternateNumbersForRedirectingIdentity
        use_group_name: useGroupName
        block_calling_name_for_external_calls: blockCallingNameForExternalCalls
        enable_dialable_caller_id: enableDialableCallerID
        allow_configurable_clid_for_redirecting_identity:
            allowConfigurableCLIDForRedirectingIdentity
        allow_department_clid_name_override: allowDepartmentCLIDNameOverride
        enterprise_calls_clid_policy: enterpriseCallsCLIDPolicy
        group_calls_clid_policy: groupCallsCLIDPolicy
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_group_clid_setting", "useGroupCLIDSetting", bool),
        E("use_group_media_setting", "useGroupMediaSetting", bool),
        E("use_group_call_limits_setting", "useGroupCallLimitsSetting", bool),
        E("use_group_translation_routing_setting", "useGroupTranslationRoutingSetting", bool),
        E("use_group_dclid_setting", "useGroupDCLIDSetting", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("network_usage_selection", "networkUsageSelection", str),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("group_calls_clid_policy", "groupCallsCLIDPolicy", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_group_clid_setting: bool = Field(type=bool, required=False, mutable=False)
    use_group_media_setting: bool = Field(type=bool, required=False, mutable=False)
    use_group_call_limits_setting: bool = Field(type=bool, required=False, mutable=False)
    use_group_translation_routing_setting: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_dclid_setting: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)


class GroupCallRecordingGetRequest(OCIRequest):
    """
    Get the Call Recording platform for a group.

    The response is either a ``GroupCallRecordingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallRecordingModifyRequest(OCIRequest):
    """
    Modify the Call Recording platform assignment for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=False, mutable=False)


class GroupCallingLineIdGetRequest(OCIRequest):
    """
    Get the calling line id settings for a group.

    The response is either a ``GroupCallingLineIdGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallingLineIdModifyRequest(OCIRequest):
    """
    Modify the calling line id settings for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_group_number: useGroupNumber
        use_group_name: useGroupName
        calling_line_id_phone_number: callingLineIdPhoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_group_number", "useGroupNumber", bool),
        E("use_group_name", "useGroupName", bool),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_group_number: bool = Field(type=bool, required=False, mutable=False)
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)


class GroupCallingPlanAddDigitPatternRequest(OCIRequest):
    """
    Add a new calling plan digit string.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        digit_pattern: digitPattern
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("digit_pattern", "digitPattern", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    digit_pattern: str = Field(type=str, required=True, mutable=False)


class GroupCallingPlanDeleteDigitPatternListRequest(OCIRequest):
    """
    Delete one or more calling plan digit strings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCallingPlanGetDigitPatternListRequest(OCIRequest):
    """
    Get the list of calling plan digit strings for a group.

    The response is either a ``GroupCallingPlanGetDigitPatternListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCallingPlanModifyDigitPatternRequest(OCIRequest):
    """
    Modify a calling plan digit string.

    The name is a key; it cannot be changed.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        digit_pattern: digitPattern
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("digit_pattern", "digitPattern", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    digit_pattern: str = Field(type=str, required=False, mutable=False)


class GroupCollaborateBridgeDeleteInstanceRequest(OCIRequest):
    """
    Delete a collaborate bridge from a group.

    The request fails when attempting to delete the default collaborate bridge.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCollaborateBridgeGetInstanceListRequest(OCIRequest):
    """
    Get a list of collaborate bridges within a group.

    The response is either ``GroupCollaborateBridgeGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_name: departmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_name", "departmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=False, mutable=False)


class GroupCollaborateBridgeGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a collaborate bridge.

    The response is either ``GroupCollaborateBridgeGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupCommPilotCallManagerGetRequest(OCIRequest):
    """
    Request the group level data associated with CommPilot Call Manager.

    The response is either a ``GroupCommPilotCallManagerGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCommPilotCallManagerModifyRequest(OCIRequest):
    """
    Modify the group level data associated with CommPilot Call Manager.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_directory: groupDirectory
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_directory", "groupDirectory", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_directory: str = Field(type=str, required=False, mutable=False)


class GroupCommonPhoneListDeleteListRequest(OCIRequest):
    """
    Delete one or more entries from a group's common phone list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        entry_name: entryName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("entry_name", "entryName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    entry_name: str = Field(type=str, required=True, mutable=False)


class GroupCommonPhoneListModifyRequest(OCIRequest):
    """
    Modify an entry in a group's common phone list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        entry_name: entryName
        new_entry_name: newEntryName
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("entry_name", "entryName", str, is_required=True),
        E("new_entry_name", "newEntryName", str),
        E("phone_number", "phoneNumber", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    entry_name: str = Field(type=str, required=True, mutable=False)
    new_entry_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)


class GroupCommunicationBarringAuthorizationCodeDeleteListRequest(OCIRequest):
    """
    Delete a list of Communication Barring Authorization codes from a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupCommunicationBarringAuthorizationCodeGetListRequest(OCIRequest):
    """
    Get a list of Communication Barring Authorization Codes for a group.

    The response is either a
    ``GroupCommunicationBarringAuthorizationCodeGetListResponse()`` or an
    ``ErorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCommunicationBarringGetRequest(OCIRequest):
    """
    Gets Communication Barring setting for a group.

    The response is either a ``GroupCommunicationBarringGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCommunicationBarringModifyRequest(OCIRequest):
    """
    Gets Communication Barring setting for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_default_service_provider_profile: useDefaultServiceProviderProfile
        profile: profile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_default_service_provider_profile", "useDefaultServiceProviderProfile", bool),
        E("profile", "profile", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_default_service_provider_profile: bool = Field(
        type=bool, required=False, mutable=False,
    )
    profile: str = Field(type=str, required=False, mutable=False)


class GroupCommunicationBarringProfileGetAssignedListRequest(OCIRequest):
    """
    Get the list of all communication barring profiles assigned to the group.

    The response is either a ``GroupCommunicationBarringProfileGetAssignedListResponse()``
    or an ``ErrorResponse()``. This command only applies to groups in an Enterprise.  This
    command will fail for groups in a Service Provider.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCustomContactDirectoryAddRequest(OCIRequest):
    """
    Adds a Custom Contact Directory to a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replace by:
    ``GroupCustomContactDirectoryAddRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("user_id", "userId", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=False, mutable=False)


class GroupCustomContactDirectoryDeleteRequest(OCIRequest):
    """
    Deletes a Custom Contact Directory to a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCustomContactDirectoryGetListRequest(OCIRequest):
    """
    Gets the list of Custom Contact Directories for a group.

    The response is either ``GroupCustomContactDirectoryGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCustomContactDirectoryGetRequest(OCIRequest):
    """
    Gets a Custom Contact Directory in a group.

    The response is either ``GroupCustomContactDirectoryGetResponse()`` or
    ``ErrorResponse()``. Replace by: ``GroupCustomContactDirectoryGetRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupCustomRingbackGroupGetRequest(OCIRequest):
    """
    Get the group's custom ring back service settings.

    The response is either a ``GroupCustomRingbackGroupGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``GroupCustomRingbackGroupGetRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCustomRingbackGroupGetRequest16(OCIRequest):
    """
    Get the group's custom ring back service settings.

    The response is either a ``GroupCustomRingbackGroupGetResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupCustomRingbackGroupGetRequest20(OCIRequest):
    """
    Get the group's custom ring back service settings.

    The response is either a ``GroupCustomRingbackGroupGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDeleteRequest(OCIRequest):
    """
    Delete a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDepartmentAdminDeleteRequest(OCIRequest):
    """
    Delete a group department administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupDepartmentAdminGetRequest(OCIRequest):
    """
    Get a group department administrators profile.

    The response is either a ``GroupDepartmentAdminGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class GroupDepartmentAdminModifyRequest(OCIRequest):
    """
    Modify a group department administrator.

    Since old password is not specified here, any password rule related to old password
    does not apply.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        first_name: firstName
        last_name: lastName
        password: password
        language: language
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("first_name", "firstName", str),
        E("last_name", "lastName", str),
        E("password", "password", str),
        E("language", "language", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    language: str = Field(type=str, required=False, mutable=False)


class GroupDepartmentDeleteRequest(OCIRequest):
    """
    Delete a department from a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_name: departmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_name", "departmentName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=True, mutable=False)


class GroupDepartmentGetAvailableParentListRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_name: departmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_name", "departmentName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=True, mutable=False)


class GroupDepartmentGetListRequest(OCIRequest):
    """
    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()``.
    Replaced by: ``GroupDepartmentGetListRequest18()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        include_enterprise_departments: includeEnterpriseDepartments
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "include_enterprise_departments", "includeEnterpriseDepartments", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    include_enterprise_departments: bool = Field(type=bool, required=True, mutable=False)


class GroupDepartmentGetListRequest18(OCIRequest):
    """
    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 ``GroupDepartmentGetListResponse18()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        include_enterprise_departments: includeEnterpriseDepartments
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "include_enterprise_departments", "includeEnterpriseDepartments", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    include_enterprise_departments: bool = Field(type=bool, required=True, mutable=False)


class GroupDepartmentGetRequest(OCIRequest):
    """
    Request the attributes of a department.

    The response is either a ``GroupDepartmentGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_name: departmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_name", "departmentName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=True, mutable=False)


class GroupDeviceManagementGetAccessDeviceCountForDeviceTypeGroupRequest(OCIRequest):
    """
    Request the number of access device of a particular device type and group.

    If countOnlyResetSupportedDevice is true, count only access devices if the device type
    supports reset.  Devices are counted only if their device type supports Device
    Management.  An error is returned if deviceType is specified but does not support
    device management.

    The response is either
    ``GroupDeviceManagementGetAccessDeviceCountForDeviceTypeGroupResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        count_only_reset_supported_device: countOnlyResetSupportedDevice
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("count_only_reset_supported_device", "countOnlyResetSupportedDevice", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    count_only_reset_supported_device: bool = Field(type=bool, required=False, mutable=False)


class GroupDeviceManagementInProgressAndPendingEventCancelRequest(OCIRequest):
    """
    Cancel pending and in progress events.

    A list of individual events can be canceled.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        event_id: eventId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("event_id", "eventId", int, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    event_id: int = Field(type=int, required=True, mutable=False)


class GroupDeviceTypeCustomTagAddRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class GroupDeviceTypeCustomTagDeleteListRequest(OCIRequest):
    """
    Request to delete static configuration tags for an access device type used in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        tag_name: tagName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)


class GroupDeviceTypeCustomTagGetListRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)


class GroupDeviceTypeCustomTagModifyRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class GroupDeviceTypeFileGetListRequest(OCIRequest):
    """
    Request to get the list of device type files managed by the Device Management System,
    on a per-group basis.

    The response is either ``GroupDeviceTypeFileGetListResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupDeviceTypeFileGetListRequest14sp8()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)


class GroupDeviceTypeFileGetListRequest14sp8(OCIRequest):
    """
    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()``. Replaced by: ``GroupDeviceTypeFileGetListRequest21()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)


class GroupDeviceTypeFileGetListRequest21(OCIRequest):
    """
    Request to get the list of device type files managed by the Device Management System,
    on a per-group basis.

    The response is either ``GroupDeviceTypeFileGetListResponse21()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)


class GroupDeviceTypeFileGetRequest(OCIRequest):
    """
    Request to get a group device type file.

    The response is either ``GroupDeviceTypeFileGetResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupDeviceTypeFileGetRequest14sp8()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        file_type: fileType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)


class GroupDeviceTypeFileGetRequest14sp8(OCIRequest):
    """
    Request to get a group device type file.

    The response is either ``GroupDeviceTypeFileGetResponse14sp8()`` or
    ``ErrorResponse()``. Replaced by: ``GroupDeviceTypeFileGetRequest16sp1()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class GroupDeviceTypeFileGetRequest16sp1(OCIRequest):
    """
    Request to get a group device type file.

    The response is either ``GroupDeviceTypeFileGetResponse16sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class GroupDialPlanPolicyAddAccessCodeRequest(OCIRequest):
    """
    Request to add a Group level Dial Plan Access Code and its all attribues.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        access_code: accessCode
        include_code_for_network_translations_and_routing:
            includeCodeForNetworkTranslationsAndRouting
        include_code_for_screening_services: includeCodeForScreeningServices
        enable_secondary_dial_tone: enableSecondaryDialTone
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("access_code", "accessCode", str, is_required=True),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting", bool, is_required=True,
        ),
        E(
            "include_code_for_screening_services", "includeCodeForScreeningServices",
            bool, is_required=True,
        ),
        E("enable_secondary_dial_tone", "enableSecondaryDialTone", bool, is_required=True),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    access_code: str = Field(type=str, required=True, mutable=False)
    include_code_for_network_translations_and_routing: bool = Field(
        type=bool, required=True, mutable=False,
    )
    include_code_for_screening_services: bool = Field(type=bool, required=True, mutable=False)
    enable_secondary_dial_tone: bool = Field(type=bool, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupDialPlanPolicyDeleteAccessCodeRequest(OCIRequest):
    """
    Request to delete a Group level Dial Plan Access Code and its all attribues.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        access_code: accessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("access_code", "accessCode", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    access_code: str = Field(type=str, required=True, mutable=False)


class GroupDialPlanPolicyGetAccessCodeListRequest(OCIRequest):
    """
    Request the Group level data associated with Dial Plan Policy.

    The response is either a ``GroupDialPlanPolicyGetAccessCodeListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDialPlanPolicyGetAccessCodeRequest(OCIRequest):
    """
    Request access code data associated with Group level Dial Plan Policy access codes.

    The response is either a ``GroupDialPlanPolicyGetAccessCodeResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        access_code: accessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("access_code", "accessCode", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    access_code: str = Field(type=str, required=True, mutable=False)


class GroupDialPlanPolicyGetRequest(OCIRequest):
    """
    Request the Group level data associated with Dial Plan Policy.

    The response is either a ``GroupDialPlanPolicyGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``GroupDialPlanPolicyGetRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDialPlanPolicyGetRequest17(OCIRequest):
    """
    Request the Group level data associated with Dial Plan Policy.

    The response is either a ``GroupDialPlanPolicyGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDialPlanPolicyModifyAccessCodeRequest(OCIRequest):
    """
    Request to modify a Group level Dial Plan Access Code and its attribues.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        access_code: accessCode
        include_code_for_network_translations_and_routing:
            includeCodeForNetworkTranslationsAndRouting
        include_code_for_screening_services: includeCodeForScreeningServices
        enable_secondary_dial_tone: enableSecondaryDialTone
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("access_code", "accessCode", str, is_required=True),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting", bool,
        ),
        E("include_code_for_screening_services", "includeCodeForScreeningServices", bool),
        E("enable_secondary_dial_tone", "enableSecondaryDialTone", bool),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    access_code: str = Field(type=str, required=True, mutable=False)
    include_code_for_network_translations_and_routing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    include_code_for_screening_services: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_secondary_dial_tone: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupDialPlanPolicyModifyRequest(OCIRequest):
    """
    Modify the Group level data associated with Dial Plan Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_setting: useSetting
        requires_access_code_for_public_calls: requiresAccessCodeForPublicCalls
        allow_e164_public_calls: allowE164PublicCalls
        prefer_e164_number_format_for_callback_services:
            preferE164NumberFormatForCallbackServices
        public_digit_map: publicDigitMap
        private_digit_map: privateDigitMap
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_setting", "useSetting", str),
        E("requires_access_code_for_public_calls", "requiresAccessCodeForPublicCalls", bool),
        E("allow_e164_public_calls", "allowE164PublicCalls", bool),
        E(
            "prefer_e164_number_format_for_callback_services",
            "preferE164NumberFormatForCallbackServices", bool,
        ),
        E("public_digit_map", "publicDigitMap", str),
        E("private_digit_map", "privateDigitMap", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_setting: str = Field(type=str, required=False, mutable=False)
    requires_access_code_for_public_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_e164_public_calls: bool = Field(type=bool, required=False, mutable=False)
    prefer_e164_number_format_for_callback_services: bool = Field(
        type=bool, required=False, mutable=False,
    )
    public_digit_map: str = Field(type=str, required=False, mutable=False)
    private_digit_map: str = Field(type=str, required=False, mutable=False)


class GroupDialableCallerIDCriteriaAddRequest(OCIRequest):
    """
    Add a new Dialable Caller ID Criteria.

    Criteria are added at the bottom of the list with the lowest priority.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        description: description
        prefix_digits: prefixDigits
        match_call_type: matchCallType
        match_alternate_call_indicator: matchAlternateCallIndicator
        match_local_category: matchLocalCategory
        match_national_category: matchNationalCategory
        match_interlata_category: matchInterlataCategory
        match_intralata_category: matchIntralataCategory
        match_international_category: matchInternationalCategory
        match_private_category: matchPrivateCategory
        match_emergency_category: matchEmergencyCategory
        match_other_category: matchOtherCategory
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("prefix_digits", "prefixDigits", str),
        E("match_call_type", "matchCallType", str, is_array=True),
        E(
            "match_alternate_call_indicator", "matchAlternateCallIndicator", str,
            is_array=True,
        ),
        E("match_local_category", "matchLocalCategory", bool, is_required=True),
        E("match_national_category", "matchNationalCategory", bool, is_required=True),
        E("match_interlata_category", "matchInterlataCategory", bool, is_required=True),
        E("match_intralata_category", "matchIntralataCategory", bool, is_required=True),
        E(
            "match_international_category", "matchInternationalCategory", bool,
            is_required=True,
        ),
        E("match_private_category", "matchPrivateCategory", bool, is_required=True),
        E("match_emergency_category", "matchEmergencyCategory", bool, is_required=True),
        E("match_other_category", "matchOtherCategory", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    prefix_digits: str = Field(type=str, required=False, mutable=False)
    match_call_type: "List[str]" = Field(type=list, required=False, mutable=False)
    match_alternate_call_indicator: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )
    match_local_category: bool = Field(type=bool, required=True, mutable=False)
    match_national_category: bool = Field(type=bool, required=True, mutable=False)
    match_interlata_category: bool = Field(type=bool, required=True, mutable=False)
    match_intralata_category: bool = Field(type=bool, required=True, mutable=False)
    match_international_category: bool = Field(type=bool, required=True, mutable=False)
    match_private_category: bool = Field(type=bool, required=True, mutable=False)
    match_emergency_category: bool = Field(type=bool, required=True, mutable=False)
    match_other_category: bool = Field(type=bool, required=True, mutable=False)


class GroupDialableCallerIDCriteriaDeleteRequest(OCIRequest):
    """
    Delete a Dialable Caller ID Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupDialableCallerIDCriteriaGetRequest(OCIRequest):
    """
    Get an existing Dialable Caller ID Criteria.

    The response is either a ``GroupDialableCallerIDCriteriaGetRequest()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupDialableCallerIDGetRequest(OCIRequest):
    """
    Get the Group’s Dialable Caller ID settings and criteria list.

    The response is either a ``GroupDialableCallerIDGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDigitCollectionGetRequest13mp4(OCIRequest):
    """
    Request the group's digit collection attributes.

    The response is either a ``GroupDigitCollectionGetResponse13mp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDigitCollectionModifyRequest(OCIRequest):
    """
    Modifies the group's digit collection attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_setting: useSetting
        access_code: accessCode
        public_digit_map: publicDigitMap
        private_digit_map: privateDigitMap
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_setting", "useSetting", str),
        E("access_code", "accessCode", str),
        E("public_digit_map", "publicDigitMap", str),
        E("private_digit_map", "privateDigitMap", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_setting: str = Field(type=str, required=False, mutable=False)
    access_code: str = Field(type=str, required=False, mutable=False)
    public_digit_map: str = Field(type=str, required=False, mutable=False)
    private_digit_map: str = Field(type=str, required=False, mutable=False)


class GroupDirectoryNumberHuntingGetAvailableUserListRequest(OCIRequest):
    """
    Request to get the agents of a call center or hunt group that are available to be
    assigned to a directory number hunting group.

    They are agents that are not already assigned to any other directory number hunting
    group.

    The response is either ``GroupDirectoryNumberHuntingGetAvailableUserListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupDirectoryNumberHuntingGetRequest(OCIRequest):
    """
    Request to get the properties of the DNH service for a specified serviceUserId.

    It gets the agents of a call center or hunt group that are members of a directory
    number hunting group.  They are agents that are not already assigned to any other
    directory number hunting group.

    The response is either ``GroupDirectoryNumberHuntingGetResponse()`` or
    ``ErrorResponse()``. Replaced by: ``GroupDirectoryNumberHuntingGetRequest17sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupDirectoryNumberHuntingGetRequest17sp1(OCIRequest):
    """
    Request to get the properties of the DNH service for a specified serviceUserId.

    It gets the agents of a call center or hunt group that are members of a directory
    number hunting group.  They are agents that are not already assigned to any other
    directory number hunting group.

    The response is either ``GroupDirectoryNumberHuntingGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupDnGetActivationListRequest(OCIRequest):
    """
    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 when
    the number activation Mode is set to "User Activation Enabled" Dns assigned to the
    IMRN pool are not listed in the response.

    The response is either a ``GroupDnGetActivationListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDnGetAvailableListRequest(OCIRequest):
    """
    Get the list of DNs that are assigned to a group and still available for assignment to
    users or service instances within the group.

    Dns assigned to the IMRN pool are not listed in the response.

    The response is either a ``GroupDnGetAvailableListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDnGetAvailableRangesListRequest(OCIRequest):
    """
    Get a list of group DNs that are not assigned to user, service instances or IMRN pool.

    The Dns are returned in a list of DNs or DN ranges and formated in E164 format for
    display.

    The response is either a ``GroupDnGetAvailableRangeListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDnGetDetailedAvailableListRequest(OCIRequest):
    """
    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.

    Dns assigned to the IMRN pool are not listed in the response.

    The response is either a ``GroupDnGetDetailedAvailableListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDnGetListRequest(OCIRequest):
    """
    Get the list of DNs that are assigned to a group.

    Dns assigned to the IMRN pool are not listed in the response.

    The response is either a ``GroupDnGetListResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDnGetSummaryListRequest(OCIRequest):
    """
    Get the list of assigned and unassigned DN ranges in a group.

    Dns assigned to the IMRN pool are not listed in the response.

    The response is either a ``GroupDnGetSummaryListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDomainAssignListRequest(OCIRequest):
    """
    Assign a list of domains to a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        domain: domain
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("domain", "domain", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    domain: str = Field(type=str, required=True, mutable=False)


class GroupDomainGetAssignedListRequest(OCIRequest):
    """
    Requests the list of all domains assigned to a group.

    The response is either ``GroupDomainGetAssignedListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupDomainUnassignListRequest(OCIRequest):
    """
    Unassign a list of domains from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        domain: domain
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("domain", "domain", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    domain: str = Field(type=str, required=True, mutable=False)


class GroupEmergencyZonesGetHomeZoneListRequest(OCIRequest):
    """
    Request the group level data associated with Emergency Zones.

    The response is either a ``GroupEmergencyZonesGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupEmergencyZonesGetRequest(OCIRequest):
    """
    Request the group level data associated with Emergency Zones.

    The response is either a ``GroupEmergencyZonesGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupEmergencyZonesModifyHomeZoneListRequest(OCIRequest):
    """
    Modify a list of home zones and/or home zone ranges.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        home_zone_ip_address_list: homeZoneIpAddressList
        home_zone_ip_address_range_list: homeZoneIpAddressRangeList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "home_zone_ip_address_list", "homeZoneIpAddressList", str, is_complex=True,
            is_array=True,
        ),  # unknown
        E(
            "home_zone_ip_address_range_list", "homeZoneIpAddressRangeList", str,
            is_complex=True, is_array=True,
        ),  # unknown
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    home_zone_ip_address_list: "List[str]" = Field(type=list, required=False, mutable=False)
    home_zone_ip_address_range_list: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupEmergencyZonesModifyRequest(OCIRequest):
    """
    Modify the group level data associated with Emergency Zones.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        emergency_zones_prohibition: emergencyZonesProhibition
        send_emergency_call_notify_email: sendEmergencyCallNotifyEmail
        emergency_call_notify_email_address: emergencyCallNotifyEmailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("emergency_zones_prohibition", "emergencyZonesProhibition", str),
        E("send_emergency_call_notify_email", "sendEmergencyCallNotifyEmail", bool),
        E("emergency_call_notify_email_address", "emergencyCallNotifyEmailAddress", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    emergency_zones_prohibition: str = Field(type=str, required=False, mutable=False)
    send_emergency_call_notify_email: bool = Field(type=bool, required=False, mutable=False)
    emergency_call_notify_email_address: str = Field(type=str, required=False, mutable=False)


class GroupEnterpriseTrunkAddRequest(OCIRequest):
    """
    Request to add an enterprise trunk in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``GroupEnterpriseTrunkAddRequest21()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
        maximum_reroute_attempts: maximumRerouteAttempts
        route_exhaustion_action: routeExhaustionAction
        route_exhaustion_forward_address: routeExhaustionForwardAddress
        ordered_routing: orderedRouting
        priority_weighted_routing: priorityWeightedRouting
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("maximum_reroute_attempts", "maximumRerouteAttempts", int, is_required=True),
        E("route_exhaustion_action", "routeExhaustionAction", str, is_required=True),
        E("route_exhaustion_forward_address", "routeExhaustionForwardAddress", str),
        E("ordered_routing", "orderedRouting", str, is_complex=True),  # unknown
        E(
            "priority_weighted_routing", "priorityWeightedRouting", str, is_complex=True,
        ),  # unknown
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    maximum_reroute_attempts: int = Field(type=int, required=True, mutable=False)
    route_exhaustion_action: str = Field(type=str, required=True, mutable=False)
    route_exhaustion_forward_address: str = Field(type=str, required=False, mutable=False)
    ordered_routing: str = Field(type=str, required=False, mutable=False)
    priority_weighted_routing: str = Field(type=str, required=False, mutable=False)


class GroupEnterpriseTrunkAddRequest21(OCIRequest):
    """
    Request to add an enterprise trunk in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
        maximum_reroute_attempts: maximumRerouteAttempts
        route_exhaustion_action: routeExhaustionAction
        route_exhaustion_forward_address: routeExhaustionForwardAddress
        ordered_routing: orderedRouting
        priority_weighted_routing: priorityWeightedRouting
        enable_capacity_management: enableCapacityManagement
        max_active_calls: maxActiveCalls
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("maximum_reroute_attempts", "maximumRerouteAttempts", int, is_required=True),
        E("route_exhaustion_action", "routeExhaustionAction", str, is_required=True),
        E("route_exhaustion_forward_address", "routeExhaustionForwardAddress", str),
        E("ordered_routing", "orderedRouting", str, is_complex=True),  # unknown
        E(
            "priority_weighted_routing", "priorityWeightedRouting", str, is_complex=True,
        ),  # unknown
        E("enable_capacity_management", "enableCapacityManagement", bool, is_required=True),
        E("max_active_calls", "maxActiveCalls", int),
        E("capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls", int),
        E("capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    maximum_reroute_attempts: int = Field(type=int, required=True, mutable=False)
    route_exhaustion_action: str = Field(type=str, required=True, mutable=False)
    route_exhaustion_forward_address: str = Field(type=str, required=False, mutable=False)
    ordered_routing: str = Field(type=str, required=False, mutable=False)
    priority_weighted_routing: str = Field(type=str, required=False, mutable=False)
    enable_capacity_management: bool = Field(type=bool, required=True, mutable=False)
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=False, mutable=False)


class GroupEnterpriseTrunkAddUserListRequest(OCIRequest):
    """
    Request to add users to an enterprise trunk in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)


class GroupEnterpriseTrunkDeleteRequest(OCIRequest):
    """
    Request to delete an enterprise trunk in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)


class GroupEnterpriseTrunkDeleteUserListRequest(OCIRequest):
    """
    Request to delete users from an enterprise trunk in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)


class GroupEnterpriseTrunkForceAssignUserListRequest(OCIRequest):
    """
    Request to add users to an enterprise trunk in a group.

    If the user is already assigned to another enterprise trunk, it will be unassigned
    from the old enterprise trunk and assigned to the new enterprise trunk specified in
    this request.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)


class GroupEnterpriseTrunkGetListRequest(OCIRequest):
    """
    Request to get the list of all enterprise trunks defined in a group.

    The response is either a ``GroupEnterpriseTrunkGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupEnterpriseTrunkGetRequest(OCIRequest):
    """
    Request to get an enterprise trunk The response is either an
    ``GroupEnterpriseTrunkGetResponse()`` or an ``ErrorResponse()``.

    Replaced by: ``GroupEnterpriseTrunkGetRequest21()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)


class GroupEnterpriseTrunkGetRequest21(OCIRequest):
    """
    Request to get an enterprise trunk The response is either an
    ``GroupEnterpriseTrunkGetResponse21()`` or an ``ErrorResponse()``.


    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)


class GroupEnterpriseTrunkModifyRequest(OCIRequest):
    """
    Request to modify an enterprise trunk in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
        new_enterprise_trunk_name: newEnterpriseTrunkName
        maximum_reroute_attempts: maximumRerouteAttempts
        route_exhaustion_action: routeExhaustionAction
        route_exhaustion_forward_address: routeExhaustionForwardAddress
        ordered_routing: orderedRouting
        priority_weighted_routing: priorityWeightedRouting
        enable_capacity_management: enableCapacityManagement
        max_active_calls: maxActiveCalls
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("new_enterprise_trunk_name", "newEnterpriseTrunkName", str),
        E("maximum_reroute_attempts", "maximumRerouteAttempts", int),
        E("route_exhaustion_action", "routeExhaustionAction", str),
        E("route_exhaustion_forward_address", "routeExhaustionForwardAddress", str),
        E("ordered_routing", "orderedRouting", str, is_complex=True),  # unknown
        E(
            "priority_weighted_routing", "priorityWeightedRouting", str, is_complex=True,
        ),  # unknown
        E("enable_capacity_management", "enableCapacityManagement", bool),
        E("max_active_calls", "maxActiveCalls", int),
        E("capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls", int),
        E("capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    new_enterprise_trunk_name: str = Field(type=str, required=False, mutable=False)
    maximum_reroute_attempts: int = Field(type=int, required=False, mutable=False)
    route_exhaustion_action: str = Field(type=str, required=False, mutable=False)
    route_exhaustion_forward_address: str = Field(type=str, required=False, mutable=False)
    ordered_routing: str = Field(type=str, required=False, mutable=False)
    priority_weighted_routing: str = Field(type=str, required=False, mutable=False)
    enable_capacity_management: bool = Field(type=bool, required=False, mutable=False)
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=False, mutable=False)


class GroupExchangeIntegrationGetRequest(OCIRequest):
    """
    Request the group level configuration for Exchange Integration.

    The response is either a ``GroupExchangeIntegrationGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupExistingUsersAssignUserServiceListRequest(OCIRequest):
    """
    Request to assign the user services and service packs to all existing users within the
    group.

    BroadSoft recommends using this command only for small groups with less than 100
    users.  This command will return an error if the group has over 500 users.  The
    recommended way to bulk assign/unassign services is Service Pack Migration.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_name: serviceName
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_name", "serviceName", str, is_array=True),
        E("service_pack_name", "servicePackName", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_name: "List[str]" = Field(type=list, required=False, mutable=False)
    service_pack_name: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupExistingUsersUnassignUserServiceListRequest(OCIRequest):
    """
    Requests to unassign the user services and service packs for all existing users within
    the group.

    BroadSoft recommends using this command only for small groups with less than 100
    users.  This command will return an error if the group has over 500 users.  The
    recommended way to bulk assign/unassign services is Service Pack Migration.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_name: serviceName
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_name", "serviceName", str, is_array=True),
        E("service_pack_name", "servicePackName", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_name: "List[str]" = Field(type=list, required=False, mutable=False)
    service_pack_name: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupExtensionLengthGetRequest(OCIRequest):
    """
    Request the group's extension length.

    The response is either a ``GroupExtensionLengthGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupExtensionLengthGetRequest17(OCIRequest):
    """
    Request the group's extension length.

    The response is either a ``GroupExtensionLengthGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupExtensionLengthModifyRequest(OCIRequest):
    """
    Modify the group's extension length.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        extension_length: extensionLength
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("extension_length", "extensionLength", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    extension_length: int = Field(type=int, required=False, mutable=False)


class GroupExtensionLengthModifyRequest17(OCIRequest):
    """
    Modify the group's extension length range.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        min_extension_length: minExtensionLength
        max_extension_length: maxExtensionLength
        default_extension_length: defaultExtensionLength
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("min_extension_length", "minExtensionLength", int),
        E("max_extension_length", "maxExtensionLength", int),
        E("default_extension_length", "defaultExtensionLength", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    min_extension_length: int = Field(type=int, required=False, mutable=False)
    max_extension_length: int = Field(type=int, required=False, mutable=False)
    default_extension_length: int = Field(type=int, required=False, mutable=False)


class GroupFeatureAccessCodeGetListRequest(OCIRequest):
    """
    Get the list of feature access codes for a group.

    The response is either a ``GroupFeatureAccessCodeGetListResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``GroupFeatureAccessCodeGetRequest()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupFeatureAccessCodeGetRequest(OCIRequest):
    """
    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.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupFeatureAccessCodeGetRequest20(OCIRequest):
    """
    Get group FAC code level and the list of feature access codes for a group.

    The response is either a ``GroupFeatureAccessCodeGetResponse20()`` or an
    ``ErrorResponse()``. Returned Feature Access Codes may be group specific, or Service
    Provider Feature Access Codes, depending on FAC code level.  In release 20 the "Call
    Recording" FAC name is changed to "Call Recording - Start". Replaced by:
    ``GroupFeatureAccessCodeGetRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupFeatureAccessCodeGetRequest21(OCIRequest):
    """
    Get group FAC code level and the list of feature access codes for a group.

    The response is either a ``GroupFeatureAccessCodeGetResponse20()`` or an
    ``ErrorResponse()``. Returned Feature Access Codes may be group specific, or Service
    Provider Feature Access Codes, depending on FAC code level.  In release 20 the "Call
    Recording" FAC name is changed to "Call Recording - Start".

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupFileRepositoryDeviceUserAddRequest(OCIRequest):
    """
    Add a new group file repository user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        file_repository_name: fileRepositoryName
        user_name: userName
        password: password
        allow_put: allowPut
        allow_delete: allowDelete
        allow_get: allowGet
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
        E("password", "password", str, is_required=True),
        E("allow_put", "allowPut", bool, is_required=True),
        E("allow_delete", "allowDelete", bool, is_required=True),
        E("allow_get", "allowGet", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)
    password: str = Field(type=str, required=True, mutable=False)
    allow_put: bool = Field(type=bool, required=True, mutable=False)
    allow_delete: bool = Field(type=bool, required=True, mutable=False)
    allow_get: bool = Field(type=bool, required=True, mutable=False)


class GroupFileRepositoryDeviceUserDeleteRequest(OCIRequest):
    """
    Delete a group file repository user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        file_repository_name: fileRepositoryName
        user_name: userName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)


class GroupFileRepositoryDeviceUserGetListRequest(OCIRequest):
    """
    Request the list of group users for a file repository in the system.

    The response is either a ``GroupFileRepositoryDeviceUserGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        file_repository_name: fileRepositoryName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=True, mutable=False)


class GroupFileRepositoryDeviceUserModifyRequest(OCIRequest):
    """
    Modify a group file repository user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        file_repository_name: fileRepositoryName
        user_name: userName
        password: password
        allow_put: allowPut
        allow_delete: allowDelete
        allow_get: allowGet
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
        E("password", "password", str),
        E("allow_put", "allowPut", bool),
        E("allow_delete", "allowDelete", bool),
        E("allow_get", "allowGet", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    allow_put: bool = Field(type=bool, required=False, mutable=False)
    allow_delete: bool = Field(type=bool, required=False, mutable=False)
    allow_get: bool = Field(type=bool, required=False, mutable=False)


class GroupFindMeFollowMeAddAlertingGroupRequest(OCIRequest):
    """
    Add an alerting group to a Find-me/Follow-me instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
        alerting_group_description: alertingGroupDescription
        use_diversion_inhibitor: useDiversionInhibitor
        answer_confirmation_required: answerConfirmationRequired
        number_of_rings: numberOfRings
        phone_number: phoneNumber
        user_id: userId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str, is_required=True),
        E("alerting_group_description", "alertingGroupDescription", str),
        E("use_diversion_inhibitor", "useDiversionInhibitor", bool, is_required=True),
        E(
            "answer_confirmation_required", "answerConfirmationRequired", bool,
            is_required=True,
        ),
        E("number_of_rings", "numberOfRings", int, is_required=True),
        E("phone_number", "phoneNumber", str),
        E("user_id", "userId", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=True, mutable=False)
    alerting_group_description: str = Field(type=str, required=False, mutable=False)
    use_diversion_inhibitor: bool = Field(type=bool, required=True, mutable=False)
    answer_confirmation_required: bool = Field(type=bool, required=True, mutable=False)
    number_of_rings: int = Field(type=int, required=True, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    user_id: str = Field(type=str, required=False, mutable=False)


class GroupFindMeFollowMeDeleteAlertingGroupRequest(OCIRequest):
    """
    Delete an alerting group from a Find-me/Follow-me instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=True, mutable=False)


class GroupFindMeFollowMeDeleteAlertingGroupSelectiveCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the Find-me/Follow-me alerting group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class GroupFindMeFollowMeDeleteInstanceRequest(OCIRequest):
    """
    Delete a Find-me/Follow-me instance from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupFindMeFollowMeGetAlertingGroupListRequest(OCIRequest):
    """
    Get a list of Find-me/Follow-me alerting groups within a group.

    The response is either ``GroupFindMeFollowMeGetAlertingGroupListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupFindMeFollowMeGetAlertingGroupRequest(OCIRequest):
    """
    Request to get all the information of a Find-me/Follow-me alerting group.

    The response is either ``GroupFindMeFollowMeGetAlertingGroupResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=True, mutable=False)


class GroupFindMeFollowMeGetAlertingGroupSelectiveCriteriaRequest(OCIRequest):
    """
    Request to get all the information of a specific Find-me/Follow-me alerting group
    selective criteria.

    The response is either ``GroupFindMeFollowMeGetAlertingGroupResponse()`` or
    ``ErrorResponse()``. Replaced by:
    ``GroupFindMeFollowMeGetAlertingGroupSelectiveCriteriaRequest21()``

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class GroupFindMeFollowMeGetAlertingGroupSelectiveCriteriaRequest21(OCIRequest):
    """
    Request to get all the information of a specific Find-me/Follow-me alerting group
    selective criteria.

    The response is either ``GroupFindMeFollowMeGetAlertingGroupResponse21()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class GroupFindMeFollowMeGetInstanceListRequest(OCIRequest):
    """
    Get a list of Find-me/Follow-me instances within a group.

    The response is either ``GroupFindMeFollowMeGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)


class GroupFindMeFollowMeGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a Find-me/Follow-me instance.

    The response is either ``GroupFindMeFollowMeGetInstanceResponse()`` or
    ``ErrorResponse()``. Replaced by: ``GroupFindMeFollowMeGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupFindMeFollowMeGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Find-me/Follow-me instance.

    The response is either ``GroupFindMeFollowMeGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupFindMeFollowMeModifyAlertingGroupListRequest(OCIRequest):
    """
    Modify the priorities assigned to alerting groups The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.

    NOTE: The command fails if all the alerting groups defined for the user are not
    provided.

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=False, mutable=False)


class GroupFlexibleSeatingAccessDeviceGetListRequest(OCIRequest):
    """
    Requests the list of access devices available for assignment to a flexible seating
    host or guest.

    The list includes devices created at the system, service provider, and group levels
    that support device management.

    The response is either ``GroupFlexibleSeatingAccessDeviceGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupFlexibleSeatingHostDeleteInstanceRequest(OCIRequest):
    """
    Delete a flexible seating host instance from a group.

    Host cannot be deleted when a guest is associated to a host.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupFlexibleSeatingHostGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a flexible seating host instance.

    The response is either ``GroupFlexibleSeatingHostGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupFlexibleSeatingHostGuestAssociationGetRequest(OCIRequest):
    """
    Request the flexible seating host guest association details.

    The response is either a ``GroupFlexibleSeatingHostGuestAssociationGetResponse()`` or
    an ``ErrorResponse()``. accessLevel is always set to Group for a Service Provider

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupFlexibleSeatingHostGuestAssociationModifyRequest(OCIRequest):
    """
    Modify the flexible seating host’s guest association attributes.

    The request fails if enforceAssociationLimit or associationLimitHours are changed when
    the host is associated to a guest.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        enforce_association_limit: enforceAssociationLimit
        association_limit_hours: associationLimitHours
        access_level: accessLevel
        remove_guest_association: removeGuestAssociation
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("enforce_association_limit", "enforceAssociationLimit", bool),
        E("association_limit_hours", "associationLimitHours", int),
        E("access_level", "accessLevel", str),
        E("remove_guest_association", "removeGuestAssociation", bool),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    enforce_association_limit: bool = Field(type=bool, required=False, mutable=False)
    association_limit_hours: int = Field(type=int, required=False, mutable=False)
    access_level: str = Field(type=str, required=False, mutable=False)
    remove_guest_association: bool = Field(type=bool, required=False, mutable=False)


class GroupFlexibleSeatingHostRoutingPoliciesGetRequest(OCIRequest):
    """
    Get a flexible seating host’s routing policies The response is either a
    ``GroupFlexibleSeatingHostRoutingPoliciesGetResponse()`` or an ``ErrorResponse()``.


    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupFlexibleSeatingHostRoutingPoliciesModifyRequest(OCIRequest):
    """
    Modify a flexible seating host’s routing policies The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        service_user_id: serviceUserId
        allow_emergency_calls: allowEmergencyCalls
        allow_calls_to_voice_portal: allowCallsToVoicePortal
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("allow_emergency_calls", "allowEmergencyCalls", bool),
        E("allow_calls_to_voice_portal", "allowCallsToVoicePortal", bool),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    allow_emergency_calls: bool = Field(type=bool, required=False, mutable=False)
    allow_calls_to_voice_portal: bool = Field(type=bool, required=False, mutable=False)


class GroupGetDefaultRequest(OCIRequest):
    """
    Request the default profile for a group.

    The response is either a ``GroupGetDefaultResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class GroupGetRequest(OCIRequest):
    """
    Get the profile for a group.

    The response is either a ``GroupGetResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupGetRequest14sp7()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupGetRequest14sp7(OCIRequest):
    """
    Get the profile for a group.

    The response is either a ``GroupGetResponse14sp7()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupGetUserServiceAssignedUserListRequest(OCIRequest):
    """
    Get the list of users assigned the user service or service pack.

    The response is either a ``GroupGetUserServiceAssignedUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_name: serviceName
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_name", "serviceName", str),
        E("service_pack_name", "servicePackName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_name: str = Field(type=str, required=False, mutable=False)
    service_pack_name: str = Field(type=str, required=False, mutable=False)


class GroupGroupNightForwardingGetRequest(OCIRequest):
    """
    Request to get the Group Night Forwarding group parameters.

    The response is either ``GroupGroupNightForwardingGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingAddOriginatorListRequest(OCIRequest):
    """
    Add originator(s) to a paging group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        originator_user_id: originatorUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("originator_user_id", "originatorUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    originator_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingAddTargetListRequest(OCIRequest):
    """
    Add target(s) to a paging group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        target_user_id: targetUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("target_user_id", "targetUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    target_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingDeleteInstanceRequest(OCIRequest):
    """
    Delete a Group Paging instance from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingDeleteOriginatorListRequest(OCIRequest):
    """
    Delete originator(s) from a paging group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        originator_user_id: originatorUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("originator_user_id", "originatorUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    originator_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingDeleteTargetListRequest(OCIRequest):
    """
    Delete target(s) from a paging group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        target_user_id: targetUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("target_user_id", "targetUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    target_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingGetInstanceListRequest(OCIRequest):
    """
    Get a list of Paging Groups instances within a group.

    The response is either ``GroupGroupPagingGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)


class GroupGroupPagingGetInstanceRequest(OCIRequest):
    """
    Replaced By ``GroupGroupPagingGetInstanceRequest17sp3()`` Request to get all the
    information of a Group Paging instance.

    The response is either ``GroupGroupPagingGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingGetInstanceRequest17sp3(OCIRequest):
    """
    Request to get all the information of a Group Paging instance.

    The response is either ``GroupGroupPagingGetInstanceResponse17sp3()`` or
    ``ErrorResponse()``. Replaced by: ``GroupGroupPagingGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Group Paging instance.

    The response is either ``GroupGroupPagingGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingGetOriginatorListRequest(OCIRequest):
    """
    Get a list of originators assigned to a paging group.

    The response is either a ``GroupGroupPagingGetOriginatorListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingGetTargetListRequest(OCIRequest):
    """
    Get a list of targets assigned to a paging group.

    The response is either a ``GroupGroupPagingGetTargetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingTargetsCapacityGetRequest(OCIRequest):
    """
    Request the maximum number of target users per paging group configured for a group.

    The response is either a ``GroupGroupPagingTargetsCapacityGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupGroupPagingTargetsCapacityModifyRequest(OCIRequest):
    """
    Modify the maximum number of target users per paging group configured for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        maximum_target_users: maximumTargetUsers
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("maximum_target_users", "maximumTargetUsers", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    maximum_target_users: int = Field(type=int, required=False, mutable=False)


class GroupHolidayScheduleDeleteRequest(OCIRequest):
    """
    Delete a holiday schedule from a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        holiday_schedule_name: holidayScheduleName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)


class GroupHolidayScheduleGetListRequest(OCIRequest):
    """
    Get a holiday schedule in a group.

    The response is either a ``GroupHolidayScheduleGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupHolidayScheduleGetRequest(OCIRequest):
    """
    Get a holiday schedule in a group.

    The response is either a ``GroupHolidayScheduleGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        holiday_schedule_name: holidayScheduleName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)


class GroupHuntGroupDeleteInstanceRequest(OCIRequest):
    """
    Delete a Hunt Group instance from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupHuntGroupGetInstanceListRequest(OCIRequest):
    """
    Get a list of Hunt Group instances within a group.

    The response is either ``GroupHuntGroupGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)


class GroupHuntGroupGetInstanceRequest14(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.

    The response is either ``GroupHuntGroupGetInstanceResponse14()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupHuntGroupGetInstanceRequest17(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.

    The response is either ``GroupHuntGroupGetInstanceResponse17()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupHuntGroupGetInstanceRequest17sp3(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.

    The response is either ``GroupHuntGroupGetInstanceResponse17sp3()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupHuntGroupGetInstanceRequest17sp4(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.

    The response is either ``GroupHuntGroupGetInstanceResponse17sp4()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupHuntGroupGetInstanceRequest19(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.

    The response is either ``GroupHuntGroupGetInstanceResponse19()`` or
    ``ErrorResponse()``. Replaced by: ``GroupHuntGroupGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupHuntGroupGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.

    The response is either ``GroupHuntGroupGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``. Replaced by: ``GroupHuntGroupGetInstanceRequest20()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupHuntGroupGetInstanceRequest20(OCIRequest):
    """
    Request to get all the information of a Hunt Group instance.

    The response is either ``GroupHuntGroupGetInstanceResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupIMRNGetListRequest(OCIRequest):
    """
    Request a summary table of all DNs in a group IMRN pool.

    The response is either ``GroupIMRNGetListResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupIncomingCallingPlanGetListRequest(OCIRequest):
    """
    Request the group's incoming calling plan settings.

    The response is either a ``GroupIncomingCallingPlanGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupInstantGroupCallDeleteInstanceRequest(OCIRequest):
    """
    Request to delete an Instant Group Call service instance from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupInstantGroupCallGetInstanceListRequest(OCIRequest):
    """
    Request to get a list of Instant Group Call service instances within a group.

    The response is either ``GroupInstantGroupCallGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the service instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)


class GroupInstantGroupCallGetInstanceRequest14(OCIRequest):
    """
    Request to get all the information of an Instant Group Call service instance.

    The response is either ``GroupInstantGroupCallGetInstanceResponse14()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupInstantGroupCallGetInstanceRequest17(OCIRequest):
    """
    Request to get all the information of an Instant Group Call service instance.

    The response is either ``GroupInstantGroupCallGetInstanceResponse17()`` or
    ``ErrorResponse()``. Replaced by: ``GroupInstantGroupCallGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupInstantGroupCallGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of an Instant Group Call service instance.

    The response is either ``GroupInstantGroupCallGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupIntegratedIMPGetRequest(OCIRequest):
    """
    Get the Integrated IMP service attributes for the group.

    The response is either ``GroupIntegratedIMPGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupIntegratedIMPModifyRequest(OCIRequest):
    """
    Modify the Integrated IMP service attributes for the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_service_provider_setting: useServiceProviderSetting
        service_domain: serviceDomain
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_service_provider_setting", "useServiceProviderSetting", bool),
        E("service_domain", "serviceDomain", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_service_provider_setting: bool = Field(type=bool, required=False, mutable=False)
    service_domain: str = Field(type=str, required=False, mutable=False)


class GroupInterceptGroupGetRequest(OCIRequest):
    """
    Get the group's intercept group service settings.

    The response is either a ``GroupInterceptGroupGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``GroupInterceptGroupGetRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupInterceptGroupGetRequest16(OCIRequest):
    """
    Get the group's intercept group service settings.

    The response is either a ``GroupInterceptGroupGetResponse16()`` or an
    ``ErrorResponse()``.

    Replaced By: ``GroupInterceptGroupGetRequest16sp1()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupInterceptGroupGetRequest16sp1(OCIRequest):
    """
    Get the group's intercept group service settings.

    The response is either a ``GroupInterceptGroupGetResponse16sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupInventoryReportGetRequest(OCIRequest):
    """
    Request the group's inventory report.

    The response is either a ``GroupInventoryReportGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        include_users: includeUsers
        include_services: includeServices
        include_dns: includeDns
        include_access_devices: includeAccessDevices
        include_departments: includeDepartments
        report_delivery_email_address: reportDeliveryEmailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("include_users", "includeUsers", bool, is_required=True),
        E("include_services", "includeServices", bool, is_required=True),
        E("include_dns", "includeDns", bool, is_required=True),
        E("include_access_devices", "includeAccessDevices", bool, is_required=True),
        E("include_departments", "includeDepartments", bool, is_required=True),
        E("report_delivery_email_address", "reportDeliveryEmailAddress", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    include_users: bool = Field(type=bool, required=True, mutable=False)
    include_services: bool = Field(type=bool, required=True, mutable=False)
    include_dns: bool = Field(type=bool, required=True, mutable=False)
    include_access_devices: bool = Field(type=bool, required=True, mutable=False)
    include_departments: bool = Field(type=bool, required=True, mutable=False)
    report_delivery_email_address: str = Field(type=str, required=False, mutable=False)


class GroupLDAPIntegrationGetDirectoryRequest(OCIRequest):
    """
    Get the LDAP directory attributes for a group.

    The response is either a ``GroupLDAPIntegrationGetDirectoryResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupLDAPIntegrationGetRequest(OCIRequest):
    """
    Request the group level data associated with LDAP Integration.

    The response is either a ``GroupLDAPIntegrationGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupLDAPIntegrationModifyDirectoryRequest(OCIRequest):
    """
    Modify the LDAP directory attributes for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_level: useLevel
        server_net_address: serverNetAddress
        server_port: serverPort
        search_base: searchBase
        use_ssl: useSSL
        require_authentication: requireAuthentication
        authenticated_dn: authenticatedDN
        authenticated_password: authenticatedPassword
        is_sort_enabled: isSortEnabled
        is_paged_result_enabled: isPagedResultEnabled
        search_filter: searchFilter
        include_search_attribute_in_search_filter: includeSearchAttributeInSearchFilter
        column1_attribute_name: column1AttributeName
        column2_attribute_name: column2AttributeName
        column3_attribute_name: column3AttributeName
        column4_attribute_name: column4AttributeName
        column1_label: column1Label
        column2_label: column2Label
        column3_label: column3Label
        column4_label: column4Label
        search_column: searchColumn
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_level", "useLevel", str),
        E("server_net_address", "serverNetAddress", str),
        E("server_port", "serverPort", int),
        E("search_base", "searchBase", str),
        E("use_ssl", "useSSL", bool),
        E("require_authentication", "requireAuthentication", bool),
        E("authenticated_dn", "authenticatedDN", str),
        E("authenticated_password", "authenticatedPassword", str),
        E("is_sort_enabled", "isSortEnabled", bool),
        E("is_paged_result_enabled", "isPagedResultEnabled", bool),
        E("search_filter", "searchFilter", str),
        E(
            "include_search_attribute_in_search_filter",
            "includeSearchAttributeInSearchFilter", bool,
        ),
        E("column1_attribute_name", "column1AttributeName", str),
        E("column2_attribute_name", "column2AttributeName", str),
        E("column3_attribute_name", "column3AttributeName", str),
        E("column4_attribute_name", "column4AttributeName", str),
        E("column1_label", "column1Label", str),
        E("column2_label", "column2Label", str),
        E("column3_label", "column3Label", str),
        E("column4_label", "column4Label", str),
        E("search_column", "searchColumn", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_level: str = Field(type=str, required=False, mutable=False)
    server_net_address: str = Field(type=str, required=False, mutable=False)
    server_port: int = Field(type=int, required=False, mutable=False)
    search_base: str = Field(type=str, required=False, mutable=False)
    use_ssl: bool = Field(type=bool, required=False, mutable=False)
    require_authentication: bool = Field(type=bool, required=False, mutable=False)
    authenticated_dn: str = Field(type=str, required=False, mutable=False)
    authenticated_password: str = Field(type=str, required=False, mutable=False)
    is_sort_enabled: bool = Field(type=bool, required=False, mutable=False)
    is_paged_result_enabled: bool = Field(type=bool, required=False, mutable=False)
    search_filter: str = Field(type=str, required=False, mutable=False)
    include_search_attribute_in_search_filter: bool = Field(
        type=bool, required=False, mutable=False,
    )
    column1_attribute_name: str = Field(type=str, required=False, mutable=False)
    column2_attribute_name: str = Field(type=str, required=False, mutable=False)
    column3_attribute_name: str = Field(type=str, required=False, mutable=False)
    column4_attribute_name: str = Field(type=str, required=False, mutable=False)
    column1_label: str = Field(type=str, required=False, mutable=False)
    column2_label: str = Field(type=str, required=False, mutable=False)
    column3_label: str = Field(type=str, required=False, mutable=False)
    column4_label: str = Field(type=str, required=False, mutable=False)
    search_column: int = Field(type=int, required=False, mutable=False)


class GroupLDAPIntegrationModifyRequest(OCIRequest):
    """
    Modify the group level data associated with LDAP Integration.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class GroupMWIDeliveryToMobileEndpointCustomTemplateDeleteRequest(OCIRequest):
    """
    Delete a MWI Delivery to Mobile Endpoint Custom Template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        language: language
        type: type
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("type", "type", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    type: str = Field(type=str, required=True, mutable=False)


class GroupMWIDeliveryToMobileEndpointCustomTemplateGetRequest(OCIRequest):
    """
    Request a MWI Delivery to Mobile Endpoint Custom Template.

    The response is either a
    ``GroupMWIDeliveryToMobileEndpointCustomTemplateGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        language: language
        type: type
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("type", "type", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    type: str = Field(type=str, required=True, mutable=False)


class GroupMWIDeliveryToMobileEndpointGetRequest(OCIRequest):
    """
    Requests group MWI custom notifications settings.

    The response is either a ``GroupMWIDeliveryToMobileEndpointGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupMeetMeConferencingDeleteInstanceRequest(OCIRequest):
    """
    Delete a Meet-Me Conferencing bridge from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupMeetMeConferencingGetInstanceListRequest(OCIRequest):
    """
    Get a list of Meet-Me Conferencing instances within a group.

    The response is either ``GroupMeetMeConferencingGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_name: departmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_name", "departmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=False, mutable=False)


class GroupMeetMeConferencingGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.

    The response is either ``GroupMeetMeConferencingGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupMeetMeConferencingGetInstanceRequest17sp3(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.

    The response is either ``GroupMeetMeConferencingGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupMeetMeConferencingGetInstanceRequest17sp4(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.

    The response is either ``GroupMeetMeConferencingGetInstanceResponse17sp4()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupMeetMeConferencingGetInstanceRequest18(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.

    The response is either ``GroupMeetMeConferencingGetInstanceResponse18()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupMeetMeConferencingGetInstanceRequest19(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.

    The response is either ``GroupMeetMeConferencingGetInstanceResponse19()`` or
    ``ErrorResponse()``. Replaced by: ``GroupMeetMeConferencingGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupMeetMeConferencingGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Meet-Me Conferencing bridge.

    The response is either ``GroupMeetMeConferencingGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupMeetMeConferencingGetRequest(OCIRequest):
    """
    Request the group level data associated with Meet-Me Conferencing functions.

    The response is either a ``GroupMeetMeConferencingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupMusicOnHoldGetDepartmentListRequest(OCIRequest):
    """
    Returns a list of all departments that have a Music On Hold instance.

    The response is either ``GroupMusicOnHoldGetDepartmentListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)


class GroupNetworkClassOfServiceAssignListRequest(OCIRequest):
    """
    Assign a list of Network Classes of Service to a group.

    The Element defaultNetworkClassOfService is required only for the first assignment,
    for subsequent assignments it is optional.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        network_class_of_service: networkClassOfService
        default_network_class_of_service: defaultNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_array=True),
        E("default_network_class_of_service", "defaultNetworkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: "List[str]" = Field(type=list, required=False, mutable=False)
    default_network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupNetworkClassOfServiceAssignToAllUsersRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=True, mutable=False)


class GroupNetworkClassOfServiceGetAssignedListRequest(OCIRequest):
    """
    Get a list of Network Classes of Service assigned to a group.

    The response is either a ``GroupNetworkClassOfServiceGetAssignedListResponse()`` or an
    ``ErorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupNetworkClassOfServiceModifyDefaultRequest(OCIRequest):
    """
    Modifies the default Network Classes of Service of a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=True, mutable=False)


class GroupNetworkClassOfServiceUnassignListRequest(OCIRequest):
    """
    Unassign a list of Network Classes of Service from a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        network_class_of_service: networkClassOfService
        default_network_class_of_service: defaultNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_array=True),
        E("default_network_class_of_service", "defaultNetworkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: "List[str]" = Field(type=list, required=False, mutable=False)
    default_network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupNewUserTemplateAssignUserServiceListRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_name: serviceName
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_name", "serviceName", str, is_array=True),
        E("service_pack_name", "servicePackName", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_name: "List[str]" = Field(type=list, required=False, mutable=False)
    service_pack_name: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupNewUserTemplateUnassignUserServiceListRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_name: serviceName
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_name", "serviceName", str, is_array=True),
        E("service_pack_name", "servicePackName", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_name: "List[str]" = Field(type=list, required=False, mutable=False)
    service_pack_name: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupOfficeZoneAssignListRequest(OCIRequest):
    """
    Assign a list of Office Zones to a group.

    The Element defaultOfficeZone is required only for the first assignment, for
    subsequent assignments it is optional.  Office Zones can only be assigned if the
    Location-Based Calling Restrictions has been authorized to the group otherwise the
    request will fail.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        office_zone_name: officeZoneName
        default_office_zone_name: defaultOfficeZoneName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("office_zone_name", "officeZoneName", str, is_array=True),
        E("default_office_zone_name", "defaultOfficeZoneName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    office_zone_name: "List[str]" = Field(type=list, required=False, mutable=False)
    default_office_zone_name: str = Field(type=str, required=False, mutable=False)


class GroupOfficeZoneGetAssignedListRequest(OCIRequest):
    """
    Get a list of Office Zones assigned to a group.

    The response is either a ``GroupOfficeZoneGetAssignedListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOfficeZoneUnassignListRequest(OCIRequest):
    """
    Unassign a list of OfficeZones from a group.

    Note: a new default must be provided if unassigning the current default.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        office_zone_name: officeZoneName
        default_office_zone_name: defaultOfficeZoneName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("office_zone_name", "officeZoneName", str, is_array=True),
        E("default_office_zone_name", "defaultOfficeZoneName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    office_zone_name: "List[str]" = Field(type=list, required=False, mutable=False)
    default_office_zone_name: str = Field(type=str, required=False, mutable=False)


class GroupOutgoingCallingPlanAuthorizationCodeGetListRequest(OCIRequest):
    """
    Request the list of authorization codes for a group default and it's departments.

    The response is either a
    ``GroupOutgoingCallingPlanAuthorizationCodeGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanCallMeNowGetListRequest(OCIRequest):
    """
    Request the Call Me Now call permissions for a group default and it's departments.

    The response is either a ``GroupOutgoingCallingPlanCallMeNowGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanDigitPlanCallMeNowGetListRequest(OCIRequest):
    """
    Request the Call Me Now call permissions for digit patterns for a group default and
    it's departments.

    The response is either a
    ``GroupOutgoingCallingPlanDigitPlanCallMeNowGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanDigitPlanOriginatingGetListRequest(OCIRequest):
    """
    Request the originating permissions for digit patterns for a group default and it's
    departments.

    The response is either a
    ``GroupOutgoingCallingPlanDigitPlanOriginatingGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanDigitPlanRedirectingGetListRequest(OCIRequest):
    """
    Request the redirecting permissions for digit patterns for a group default and it's
    departments.

    The response is either a
    ``GroupOutgoingCallingPlanDigitPlanRedirectingGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanOriginatingGetListRequest(OCIRequest):
    """
    Request the originating permissions for a group default and it's departments.

    The response is either a ``GroupOutgoingCallingPlanOriginatingGetListResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanPinholeDigitPatternAddRequest(OCIRequest):
    """
    Add a new calling plan Pinhole digit string.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        digit_pattern: digitPattern
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("digit_pattern", "digitPattern", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    digit_pattern: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanPinholeDigitPatternDeleteListRequest(OCIRequest):
    """
    Delete one or more calling plan Pinhole digit strings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanPinholeDigitPatternGetListRequest(OCIRequest):
    """
    Get the list of calling plan Pinhole digit strings for a group.

    The response is either a
    ``GroupOutgoingCallingPlanPinholeDigitPatternGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanPinholeDigitPatternModifyRequest(OCIRequest):
    """
    Modify a calling plan Pinhole digit string.

    The name is a key; it cannot be changed.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        digit_pattern: digitPattern
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("digit_pattern", "digitPattern", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    digit_pattern: str = Field(type=str, required=False, mutable=False)


class GroupOutgoingCallingPlanPinholeDigitPlanCallMeNowGetListRequest(OCIRequest):
    """
    Request the Call Me Now permissions for Pinhole digit patterns for a group default and
    its departments.

    The response is either a
    ``GroupOutgoingCallingPlanPinholeDigitPlanCallMeNowGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanPinholeDigitPlanOriginatingGetListRequest(OCIRequest):
    """
    Request the originating permissions for Pinhole digit patterns for a group default and
    its departments.

    The response is either a
    ``GroupOutgoingCallingPlanPinholeDigitPlanOriginatingGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanPinholeDigitPlanRedirectingGetListRequest(OCIRequest):
    """
    Request the redirecting permissions for Pinhole digit patterns for a group default and
    its departments.

    The response is either a
    ``GroupOutgoingCallingPlanPinholeDigitPlanRedirectingGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanRedirectedGetListRequest(OCIRequest):
    """
    Request the call forwarded/transferred permissions for a group default and it's
    departments.

    The response is either a ``GroupOutgoingCallingPlanRedirectedGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanRedirectingGetListRequest(OCIRequest):
    """
    Request the initiating call forwards/transfer permissions for a group default and it's
    departments.

    The response is either a ``GroupOutgoingCallingPlanRedirectingGetListResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanTransferNumbersGetListRequest(OCIRequest):
    """
    Request the list of transfer numbers for a group default and it's departments.

    The response is either a ``GroupOutgoingCallingPlanTransferNumbersGetListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPasswordRulesGetRequest(OCIRequest):
    """
    Requests the group's password rules setting that is applicable to users within the
    group.

    The response is either ``GroupPasswordRulesGetResponse()`` or ``ErrorResponse()``.
    Repleced by: ``GroupPasswordRulesGetRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPasswordRulesGetRequest16(OCIRequest):
    """
    Requests the group's password rules setting that is applicable to users within the
    group.

    The response is either ``GroupPasswordRulesGetResponse16()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPasswordRulesModifyRequest(OCIRequest):
    """
    Request to modify the group's password rules setting that apply to the users within
    the group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        disallow_user_id: disallowUserId
        disallow_old_password: disallowOldPassword
        disallow_reversed_old_password: disallowReversedOldPassword
        restrict_min_digits: restrictMinDigits
        min_digits: minDigits
        restrict_min_upper_case_letters: restrictMinUpperCaseLetters
        min_upper_case_letters: minUpperCaseLetters
        restrict_min_lower_case_letters: restrictMinLowerCaseLetters
        min_lower_case_letters: minLowerCaseLetters
        restrict_min_non_alphanumeric_characters: restrictMinNonAlphanumericCharacters
        min_non_alphanumeric_characters: minNonAlphanumericCharacters
        min_length: minLength
        max_failed_login_attempts: maxFailedLoginAttempts
        password_expires_days: passwordExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
        disallow_previous_passwords: disallowPreviousPasswords
        number_of_previous_passwords: numberOfPreviousPasswords
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("disallow_user_id", "disallowUserId", bool),
        E("disallow_old_password", "disallowOldPassword", bool),
        E("disallow_reversed_old_password", "disallowReversedOldPassword", bool),
        E("restrict_min_digits", "restrictMinDigits", bool),
        E("min_digits", "minDigits", int),
        E("restrict_min_upper_case_letters", "restrictMinUpperCaseLetters", bool),
        E("min_upper_case_letters", "minUpperCaseLetters", int),
        E("restrict_min_lower_case_letters", "restrictMinLowerCaseLetters", bool),
        E("min_lower_case_letters", "minLowerCaseLetters", int),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters", bool,
        ),
        E("min_non_alphanumeric_characters", "minNonAlphanumericCharacters", int),
        E("min_length", "minLength", int),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("password_expires_days", "passwordExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
        E("disallow_previous_passwords", "disallowPreviousPasswords", bool),
        E("number_of_previous_passwords", "numberOfPreviousPasswords", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    disallow_user_id: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_password: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_password: bool = Field(type=bool, required=False, mutable=False)
    restrict_min_digits: bool = Field(type=bool, required=False, mutable=False)
    min_digits: int = Field(type=int, required=False, mutable=False)
    restrict_min_upper_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_upper_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_lower_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_lower_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_non_alphanumeric_characters: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_non_alphanumeric_characters: int = Field(type=int, required=False, mutable=False)
    min_length: int = Field(type=int, required=False, mutable=False)
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    password_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)
    disallow_previous_passwords: bool = Field(type=bool, required=False, mutable=False)
    number_of_previous_passwords: int = Field(type=int, required=False, mutable=False)


class GroupPolicyGetRequest(OCIRequest):
    """
    Requests the Group's policy settings.

    The response is either ``GroupPolicyGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPolicyGetRequest14sp1(OCIRequest):
    """
    Requests the Group's policy settings.

    The response is either ``GroupPolicyGetResponse14sp1()`` or ``ErrorResponse()``.

    Replaced By : ``GroupPolicyGetRequest14sp4()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPolicyGetRequest14sp4(OCIRequest):
    """
    Requests the Group's policy settings.

    The response is either ``GroupPolicyGetResponse14sp4()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPolicyGetRequest17(OCIRequest):
    """
    Requests the Group's policy settings.

    The response is either ``GroupPolicyGetResponse17()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPolicyGetRequest20(OCIRequest):
    """
    Requests the Group's policy settings.

    The response is either ``GroupPolicyGetResponse20()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPolicyModifyRequest(OCIRequest):
    """
    Request to modify the policies for a Group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        calling_plan_access: callingPlanAccess
        extension_access: extensionAccess
        ldap_integration_access: ldapIntegrationAccess
        voice_messaging_access: voiceMessagingAccess
        department_admin_user_access: departmentAdminUserAccess
        department_admin_trunk_group_access: departmentAdminTrunkGroupAccess
        department_admin_phone_number_extension_access:
            departmentAdminPhoneNumberExtensionAccess
        department_admin_calling_line_id_number_access:
            departmentAdminCallingLineIdNumberAccess
        user_authentication_access: userAuthenticationAccess
        user_group_directory_access: userGroupDirectoryAccess
        user_profile_access: userProfileAccess
        user_enhanced_call_log_access: userEnhancedCallLogAccess
        user_auto_attendant_name_dialing_access: userAutoAttendantNameDialingAccess
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("calling_plan_access", "callingPlanAccess", str),
        E("extension_access", "extensionAccess", str),
        E("ldap_integration_access", "ldapIntegrationAccess", str),
        E("voice_messaging_access", "voiceMessagingAccess", str),
        E("department_admin_user_access", "departmentAdminUserAccess", str),
        E("department_admin_trunk_group_access", "departmentAdminTrunkGroupAccess", str),
        E(
            "department_admin_phone_number_extension_access",
            "departmentAdminPhoneNumberExtensionAccess", str,
        ),
        E(
            "department_admin_calling_line_id_number_access",
            "departmentAdminCallingLineIdNumberAccess", str,
        ),
        E("user_authentication_access", "userAuthenticationAccess", str),
        E("user_group_directory_access", "userGroupDirectoryAccess", str),
        E("user_profile_access", "userProfileAccess", str),
        E("user_enhanced_call_log_access", "userEnhancedCallLogAccess", str),
        E(
            "user_auto_attendant_name_dialing_access",
            "userAutoAttendantNameDialingAccess", str,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    calling_plan_access: str = Field(type=str, required=False, mutable=False)
    extension_access: str = Field(type=str, required=False, mutable=False)
    ldap_integration_access: str = Field(type=str, required=False, mutable=False)
    voice_messaging_access: str = Field(type=str, required=False, mutable=False)
    department_admin_user_access: str = Field(type=str, required=False, mutable=False)
    department_admin_trunk_group_access: str = Field(type=str, required=False, mutable=False)
    department_admin_phone_number_extension_access: str = Field(
        type=str, required=False, mutable=False,
    )
    department_admin_calling_line_id_number_access: str = Field(
        type=str, required=False, mutable=False,
    )
    user_authentication_access: str = Field(type=str, required=False, mutable=False)
    user_group_directory_access: str = Field(type=str, required=False, mutable=False)
    user_profile_access: str = Field(type=str, required=False, mutable=False)
    user_enhanced_call_log_access: str = Field(type=str, required=False, mutable=False)
    user_auto_attendant_name_dialing_access: str = Field(
        type=str, required=False, mutable=False,
    )


class GroupPolycomPhoneServicesGetRequest(OCIRequest):
    """
    Request the group's Polycom Phone Services attributes.

    The response is either a ``GroupPolycomPhoneServicesGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPolycomPhoneServicesModifyRequest(OCIRequest):
    """
    Modify the group's Polycom Phone Services attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        include_group_common_phone_list_in_directory:
            includeGroupCommonPhoneListInDirectory
        include_group_custom_contact_directory_in_directory:
            includeGroupCustomContactDirectoryInDirectory
        group_custom_contact_directory: groupCustomContactDirectory
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "include_group_common_phone_list_in_directory",
            "includeGroupCommonPhoneListInDirectory", bool,
        ),
        E(
            "include_group_custom_contact_directory_in_directory",
            "includeGroupCustomContactDirectoryInDirectory", bool,
        ),
        E("group_custom_contact_directory", "groupCustomContactDirectory", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    include_group_common_phone_list_in_directory: bool = Field(
        type=bool, required=False, mutable=False,
    )
    include_group_custom_contact_directory_in_directory: bool = Field(
        type=bool, required=False, mutable=False,
    )
    group_custom_contact_directory: str = Field(type=str, required=False, mutable=False)


class GroupPortalPasscodeRulesGetRequest(OCIRequest):
    """
    Requests the group's passcode rules setting.

    The response is either ``GroupPortalPasscodeRulesGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPortalPasscodeRulesGetRequest19(OCIRequest):
    """
    Requests the group's passcode rules setting.

    The response is either ``GroupPortalPasscodeRulesGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPortalPasscodeRulesModifyRequest(OCIRequest):
    """
    Request to modify the group's passcode rules setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: numberOfRepeatedDigits
    disallowRepeatedPatterns disallowContiguousSequences numberOfAscendingDigits
    numberOfDescendingDigits numberOfPreviousPasscodes

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_rule_level: useRuleLevel
        disallow_repeated_digits: disallowRepeatedDigits
        number_of_repeated_digits: numberOfRepeatedDigits
        disallow_repeated_patterns: disallowRepeatedPatterns
        disallow_contiguous_sequences: disallowContiguousSequences
        number_of_ascending_digits: numberOfAscendingDigits
        number_of_descending_digits: numberOfDescendingDigits
        disallow_user_number: disallowUserNumber
        disallow_reversed_user_number: disallowReversedUserNumber
        disallow_old_passcode: disallowOldPasscode
        number_of_previous_passcodes: numberOfPreviousPasscodes
        disallow_reversed_old_passcode: disallowReversedOldPasscode
        min_code_length: minCodeLength
        max_code_length: maxCodeLength
        disable_login_after_max_failed_login_attempts:
            disableLoginAfterMaxFailedLoginAttempts
        max_failed_login_attempts: maxFailedLoginAttempts
        expire_password: expirePassword
        passcode_expires_days: passcodeExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_rule_level", "useRuleLevel", str),
        E("disallow_repeated_digits", "disallowRepeatedDigits", bool),
        E("number_of_repeated_digits", "numberOfRepeatedDigits", int),
        E("disallow_repeated_patterns", "disallowRepeatedPatterns", bool),
        E("disallow_contiguous_sequences", "disallowContiguousSequences", bool),
        E("number_of_ascending_digits", "numberOfAscendingDigits", int),
        E("number_of_descending_digits", "numberOfDescendingDigits", int),
        E("disallow_user_number", "disallowUserNumber", bool),
        E("disallow_reversed_user_number", "disallowReversedUserNumber", bool),
        E("disallow_old_passcode", "disallowOldPasscode", bool),
        E("number_of_previous_passcodes", "numberOfPreviousPasscodes", int),
        E("disallow_reversed_old_passcode", "disallowReversedOldPasscode", bool),
        E("min_code_length", "minCodeLength", int),
        E("max_code_length", "maxCodeLength", int),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts", bool,
        ),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("expire_password", "expirePassword", bool),
        E("passcode_expires_days", "passcodeExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_rule_level: str = Field(type=str, required=False, mutable=False)
    disallow_repeated_digits: bool = Field(type=bool, required=False, mutable=False)
    number_of_repeated_digits: int = Field(type=int, required=False, mutable=False)
    disallow_repeated_patterns: bool = Field(type=bool, required=False, mutable=False)
    disallow_contiguous_sequences: bool = Field(type=bool, required=False, mutable=False)
    number_of_ascending_digits: int = Field(type=int, required=False, mutable=False)
    number_of_descending_digits: int = Field(type=int, required=False, mutable=False)
    disallow_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    number_of_previous_passcodes: int = Field(type=int, required=False, mutable=False)
    disallow_reversed_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    min_code_length: int = Field(type=int, required=False, mutable=False)
    max_code_length: int = Field(type=int, required=False, mutable=False)
    disable_login_after_max_failed_login_attempts: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    expire_password: bool = Field(type=bool, required=False, mutable=False)
    passcode_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)


class GroupPreAlertingAnnouncementGetRequest(OCIRequest):
    """
    Get the group�s PreAlertingservice settings.

    The response is either a ``GroupPreAlertingAnnouncementGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPreAlertingAnnouncementGetRequest20(OCIRequest):
    """
    Get the group’s PreAlertingservice settings.

    The response is either a ``GroupPreAlertingAnnouncementGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupPreferredCarrierGroupGetRequest(OCIRequest):
    """
    Requests the currently configured carriers for a group.

    The response is either a ``GroupPreferredCarrierGroupGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupRouteListEnterpriseTrunkNumberRangeAssignListRequest(OCIRequest):
    """
    Assign a list of service provider number ranges to a group.

    The number ranges must have previously been added to the service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        number_range_start: numberRangeStart
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("number_range_start", "numberRangeStart", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    number_range_start: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupRouteListEnterpriseTrunkNumberRangeGetAvailableListRequest(OCIRequest):
    """
    Request a list of number ranges that are assigned to a group and still available for
    assignment to users within the group.

    The response is either
    ``GroupRouteListEnterpriseTrunkNumberRangeGetAvailableListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupRouteListEnterpriseTrunkNumberRangeGetSummaryListRequest(OCIRequest):
    """
    Get the list of assigned and unassigned enterprise trunknumber ranges in a group.

    The response is either
    ``GroupRouteListEnterpriseTrunkNumberRangeGetSummaryListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupRouteListEnterpriseTrunkNumberRangeUnassignListRequest(OCIRequest):
    """
    Unassign a list of service provider number ranges from a group.

    The number ranges then become available for assignment to other groups.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        number_range_start: numberRangeStart
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("number_range_start", "numberRangeStart", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    number_range_start: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupRoutePointBouncedCallGetRequest(OCIRequest):
    """
    Get a route point's bounced call settings.

    The response is either a ``GroupRoutePointBouncedCallGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointBouncedCallModifyRequest(OCIRequest):
    """
    Modify a route point's bounced call settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        number_of_rings_before_bouncing_call: numberOfRingsBeforeBouncingCall
        enable_transfer: enableTransfer
        transfer_phone_number: transferPhoneNumber
        bounce_call_when_agent_unavailable: bounceCallWhenAgentUnavailable
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("number_of_rings_before_bouncing_call", "numberOfRingsBeforeBouncingCall", int),
        E("enable_transfer", "enableTransfer", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("bounce_call_when_agent_unavailable", "bounceCallWhenAgentUnavailable", bool),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    number_of_rings_before_bouncing_call: int = Field(type=int, required=False, mutable=False)
    enable_transfer: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    bounce_call_when_agent_unavailable: bool = Field(type=bool, required=False, mutable=False)


class GroupRoutePointDeleteInstanceRequest(OCIRequest):
    """
    Delete a Route Point instance from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointDistinctiveRingingGetRequest(OCIRequest):
    """
    Get the distinctive ringing configuration values for route point.

    The response is either a ``GroupRoutePointDistinctiveRingingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointDistinctiveRingingModifyRequest(OCIRequest):
    """
    Modify the distinctive ringing configuration values for route point.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        enable_distinctive_ringing: enableDistinctiveRinging
        distinctive_ringing_ring_pattern: distinctiveRingingRingPattern
        distinctive_ringing_force_delivery_ring_pattern:
            distinctiveRingingForceDeliveryRingPattern
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("enable_distinctive_ringing", "enableDistinctiveRinging", bool),
        E("distinctive_ringing_ring_pattern", "distinctiveRingingRingPattern", str),
        E(
            "distinctive_ringing_force_delivery_ring_pattern",
            "distinctiveRingingForceDeliveryRingPattern", str,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    enable_distinctive_ringing: bool = Field(type=bool, required=False, mutable=False)
    distinctive_ringing_ring_pattern: str = Field(type=str, required=False, mutable=False)
    distinctive_ringing_force_delivery_ring_pattern: str = Field(
        type=str, required=False, mutable=False,
    )


class GroupRoutePointExternalSystemAssignListRequest(OCIRequest):
    """
    Assign a list of route point external systems to a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        route_point_external_system: routePointExternalSystem
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("route_point_external_system", "routePointExternalSystem", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    route_point_external_system: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupRoutePointExternalSystemGetAssignedListRequest(OCIRequest):
    """
    Requests the list of all Route Point External Systems assigned to a group.

    The response is either ``GroupRoutePointExternalSystemGetAssignedListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointExternalSystemUnassignListRequest(OCIRequest):
    """
    Unassign a list of route point external systems from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        route_point_external_system: routePointExternalSystem
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("route_point_external_system", "routePointExternalSystem", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    route_point_external_system: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupRoutePointForcedForwardingGetRequest(OCIRequest):
    """
    Get a route point's forced forwarding settings.

    The response is either a ``GroupRoutePointForcedForwardingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointForcedForwardingGetRequest20(OCIRequest):
    """
    Get a route point's forced forwarding settings.

    The response is either a ``GroupRoutePointForcedForwardingGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointGetAnnouncementRequest(OCIRequest):
    """
    Get a route point's announcement settings.

    The response is either a ``GroupRoutePointGetAnnouncementResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``GroupRoutePointGetAnnouncementRequest19()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointGetAnnouncementRequest19(OCIRequest):
    """
    Get a route point's announcement settings.

    The response is either a ``GroupRoutePointGetAnnouncementResponse19()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointGetAnnouncementRequest20(OCIRequest):
    """
    Get a route point's announcement settings.

    The response is either a ``GroupRoutePointGetAnnouncementResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointGetDNISListRequest(OCIRequest):
    """
    Get a list of DNIS that are configured for a Route Point.

    The response is either ``GroupRoutePointGetDNISListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointGetFailoverPolicyRequest(OCIRequest):
    """
    Get the route point failover policy.

    The response is either a ``GroupRoutePointGetFailoverPolicyResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a Route Point instance.

    The response is either ``GroupRoutePointGetInstanceResponse()`` or
    ``ErrorResponse()``. Replaced by: ``GroupRoutePointGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a Route Point instance.

    The response is either ``GroupRoutePointGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointHolidayServiceGetRequest(OCIRequest):
    """
    Get a route point's holiday service settings.

    The response is either a ``GroupRoutePointHolidayServiceGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointHolidayServiceGetRequest17sp1(OCIRequest):
    """
    Get a route point's holiday service settings.

    The response is either a ``GroupRoutePointHolidayServiceGetResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointHolidayServiceGetRequest20(OCIRequest):
    """
    Get a route point's holiday service settings.

    The response is either a ``GroupRoutePointHolidayServiceGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointManualFailoverRequest(OCIRequest):
    """
    Initiate manual failover for the Route Point.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointModifyDNISParametersRequest(OCIRequest):
    """
    Modify the setting that are configured for all the DNIS in a Route Point.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        display_dnis_number: displayDNISNumber
        display_dnis_name: displayDNISName
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("display_dnis_number", "displayDNISNumber", bool),
        E("display_dnis_name", "displayDNISName", bool),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    display_dnis_number: bool = Field(type=bool, required=False, mutable=False)
    display_dnis_name: bool = Field(type=bool, required=False, mutable=False)


class GroupRoutePointModifyFailoverPolicyRequest(OCIRequest):
    """
    Modify the route point failover policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        enable_failover_support: enableFailoverSupport
        external_system: externalSystem
        failover_phone_number: failoverPhoneNumber
        per_call_enable_failover_support: perCallEnableFailoverSupport
        per_call_call_failure_timeout_seconds: perCallCallFailureTimeoutSeconds
        per_call_outbound_call_failure_timeout_seconds:
            perCallOutboundCallFailureTimeoutSeconds
        per_call_failover_phone_number: perCallFailoverPhoneNumber
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("enable_failover_support", "enableFailoverSupport", bool),
        E("external_system", "externalSystem", str),
        E("failover_phone_number", "failoverPhoneNumber", str),
        E("per_call_enable_failover_support", "perCallEnableFailoverSupport", bool),
        E("per_call_call_failure_timeout_seconds", "perCallCallFailureTimeoutSeconds", int),
        E(
            "per_call_outbound_call_failure_timeout_seconds",
            "perCallOutboundCallFailureTimeoutSeconds", int,
        ),
        E("per_call_failover_phone_number", "perCallFailoverPhoneNumber", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    enable_failover_support: bool = Field(type=bool, required=False, mutable=False)
    external_system: str = Field(type=str, required=False, mutable=False)
    failover_phone_number: str = Field(type=str, required=False, mutable=False)
    per_call_enable_failover_support: bool = Field(type=bool, required=False, mutable=False)
    per_call_call_failure_timeout_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    per_call_outbound_call_failure_timeout_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    per_call_failover_phone_number: str = Field(type=str, required=False, mutable=False)


class GroupRoutePointNightServiceGetRequest(OCIRequest):
    """
    Get a route point's night service settings.

    The response is either a ``GroupRoutePointNightServiceGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointNightServiceGetRequest17sp1(OCIRequest):
    """
    Get a route point's night service settings.

    The response is either a ``GroupRoutePointNightServiceGetResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointNightServiceGetRequest20(OCIRequest):
    """
    Get a route point's night service settings.

    The response is either a ``GroupRoutePointNightServiceGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointOverflowGetRequest(OCIRequest):
    """
    Get a route point's overflow settings.

    The response is either a ``GroupRoutePointOverflowGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointOverflowGetRequest20(OCIRequest):
    """
    Get a route point's overflow settings.

    The response is either a ``GroupRoutePointOverflowGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointQueueCallDispositionCodeAddRequest(OCIRequest):
    """
    Add a Route Point Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool, is_required=True),
        E("description", "description", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupRoutePointQueueCallDispositionCodeDeleteRequest(OCIRequest):
    """
    Delete a Route Point Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        code: code
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointQueueCallDispositionCodeGetListRequest(OCIRequest):
    """
    Get the list of Route Point Level and Organization Level Call Disposition Codes.

    The response is either ``GroupRoutePointQueueCallDispositionCodeGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointQueueCallDispositionCodeGetRequest(OCIRequest):
    """
    Get a Route Point Call Disposition Code.

    The response is either ``GroupRoutePointQueueCallDispositionCodeGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        code: code
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class GroupRoutePointQueueCallDispositionCodeModifyRequest(OCIRequest):
    """
    Modify a Route Point Call Disposition Code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        code: code
        is_active: isActive
        description: description
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("code", "code", str, is_required=True),
        E("is_active", "isActive", bool),
        E("description", "description", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class GroupRoutePointQueueCallDispositionCodeSettingsGetRequest(OCIRequest):
    """
    Request the queue level data associated with Route Point Call Disposition Code
    Settings.

    The response is either an
    ``GroupRoutePointQueueCallDispositionCodeSettingsGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutingProfileGetRequest(OCIRequest):
    """
    Request the routing profile for the group.

    The response is either a ``GroupRoutingProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupRoutingProfileModifyRequest(OCIRequest):
    """
    Requests to modify the routing profile for a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        routing_profile: routingProfile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("routing_profile", "routingProfile", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    routing_profile: str = Field(type=str, required=False, mutable=False)


class GroupScheduleAddRequest(OCIRequest):
    """
    Add a group schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_name: scheduleName
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_name", "scheduleName", str, is_required=True),
        E("schedule_type", "scheduleType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_name: str = Field(type=str, required=True, mutable=False)
    schedule_type: str = Field(type=str, required=True, mutable=False)


class GroupScheduleGetListRequest(OCIRequest):
    """
    Get the list of a group schedules.

    The list can be filtered by schedule type.

    The response is either a ``GroupScheduleGetListResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_type", "scheduleType", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_type: str = Field(type=str, required=False, mutable=False)


class GroupScheduleGetListRequest17sp1(OCIRequest):
    """
    Get the list of schedules viewable by a group.

    The list can be filtered by schedule type.

    The response is either a ``GroupScheduleGetListResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_type", "scheduleType", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_type: str = Field(type=str, required=False, mutable=False)


class GroupSeriesCompletionAddInstanceRequest(OCIRequest):
    """
    Adds a Series Completion group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        user_id: userId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("user_id", "userId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupSeriesCompletionDeleteInstanceRequest(OCIRequest):
    """
    Deletes a Series Completion group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupSeriesCompletionGetInstanceListRequest(OCIRequest):
    """
    Request to get a list of Series Completion instances within a group.

    The response is either ``GroupSeriesCompletionGetInstanceListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupSeriesCompletionGetInstanceRequest(OCIRequest):
    """
    Gets a Series Completion group.

    The response is either ``GroupSeriesCompletionGetInstanceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupServiceAssignListRequest(OCIRequest):
    """
    Assign one or more group services to the group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_name: serviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_name", "serviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_name: str = Field(type=str, required=True, mutable=False)


class GroupServiceGetAuthorizationListRequest(OCIRequest):
    """
    Requests the group's service authorization status.

    The response is either ``GroupServiceGetAuthorizationListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupServiceGetAuthorizedListRequest(OCIRequest):
    """
    Requests the list of services and service packs authorized to a group.

    The response is either ``GroupServiceGetAuthorizedListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupServiceInstancePrivacyGetRequest(OCIRequest):
    """
    Request the data associated with Privacy for a service instance.

    The response is either a ``GroupServiceInstancePrivacyGetResponse()``. Replaced by:
    ``GroupServiceInstancePrivacyGetRequest17sp4()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupServiceInstancePrivacyGetRequest17sp4(OCIRequest):
    """
    Request the data associated with Privacy for a service instance.

    The response is either a ``GroupServiceInstancePrivacyGetResponse17sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupServiceInstancePrivacyModifyRequest(OCIRequest):
    """
    Modify the data associated with Privacy for a service instance.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        enable_directory_privacy: enableDirectoryPrivacy
        enable_auto_attendant_extension_dialing_privacy:
            enableAutoAttendantExtensionDialingPrivacy
        enable_auto_attendant_name_dialing_privacy: enableAutoAttendantNameDialingPrivacy
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("enable_directory_privacy", "enableDirectoryPrivacy", bool),
        E(
            "enable_auto_attendant_extension_dialing_privacy",
            "enableAutoAttendantExtensionDialingPrivacy", bool,
        ),
        E(
            "enable_auto_attendant_name_dialing_privacy",
            "enableAutoAttendantNameDialingPrivacy", bool,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    enable_directory_privacy: bool = Field(type=bool, required=False, mutable=False)
    enable_auto_attendant_extension_dialing_privacy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_auto_attendant_name_dialing_privacy: bool = Field(
        type=bool, required=False, mutable=False,
    )


class GroupServiceIsAssignedRequest(OCIRequest):
    """
    Request to determine if a GroupService is assigned to the group.


    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_name: serviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_name", "serviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_name: str = Field(type=str, required=True, mutable=False)


class GroupServicePhoneNumberLookupRequest(OCIRequest):
    """
    Lookup if the given number is defined in the specified service in the group.

    The response is ``GroupServicePhoneNumberLookupResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_type: serviceType
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_type", "serviceType", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_type: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class GroupServiceScriptsGroupClearLogRequest(OCIRequest):
    """
    Clear the Service Script Group Log.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupServiceScriptsGroupGetLogRequest(OCIRequest):
    """
    Request the group level data associated with Service Scripts Group Log.

    The response is either a ``GroupServiceScriptsGroupGetLogResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupServiceScriptsGroupGetRequest(OCIRequest):
    """
    Request the group level data associated with Service Scripts Group Configuration.

    The response is either a ``GroupServiceScriptsGroupGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupServiceUnassignListRequest(OCIRequest):
    """
    Unassign one or more of the group's assigned services.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_name: serviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_name", "serviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_name: str = Field(type=str, required=True, mutable=False)


class GroupSessionAdmissionControlGetRequest(OCIRequest):
    """
    Get the session admission control capacity for the group.

    The response is either a ``GroupSessionAdmissionControlGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupSessionAdmissionControlGroupDeleteListRequest(OCIRequest):
    """
    Request to delete one or more session admission control groups for the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupSessionAdmissionControlGroupGetListRequest(OCIRequest):
    """
    Request to get the list of session admission control group for the group.

    The response is either a ``GroupSessionAdmissionControlGroupGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupSessionAdmissionControlGroupGetRequest(OCIRequest):
    """
    Request to get a session admission control group for the group.

    The response is either a ``GroupSessionAdmissionControlGroupGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupSessionAdmissionControlGroupGetRequest19sp1(OCIRequest):
    """
    Request to get a session admission control group for the group.

    The response is either a ``GroupSessionAdmissionControlGroupGetResponse19sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class GroupSessionAdmissionControlModifyRequest(OCIRequest):
    """
    Request to modify session admission control capacity for the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        restrict_aggregate_sessions: restrictAggregateSessions
        max_sessions: maxSessions
        max_user_originating_sessions: maxUserOriginatingSessions
        max_user_terminating_sessions: maxUserTerminatingSessions
        count_intra_group_sessions: countIntraGroupSessions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("restrict_aggregate_sessions", "restrictAggregateSessions", bool),
        E("max_sessions", "maxSessions", int),
        E("max_user_originating_sessions", "maxUserOriginatingSessions", int),
        E("max_user_terminating_sessions", "maxUserTerminatingSessions", int),
        E("count_intra_group_sessions", "countIntraGroupSessions", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    restrict_aggregate_sessions: bool = Field(type=bool, required=False, mutable=False)
    max_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    count_intra_group_sessions: bool = Field(type=bool, required=False, mutable=False)


class GroupShInterfaceGetUserListRequest(OCIRequest):
    """
    Returns a list of all Public User Identities and associated data in a group.

    The response is either a ``GroupShInterfaceGetUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupSpeedDial100GetRequest(OCIRequest):
    """
    Get the speed dial 100 service settings for a group.

    The response is either a ``GroupSpeedDial100GetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupSpeedDial100GetRequest17sp1(OCIRequest):
    """
    Get the speed dial 100 service settings for a group.

    The response is either a ``GroupSpeedDial100GetResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupSpeedDial100ModifyRequest(OCIRequest):
    """
    Modify the speed dial 100 prefix setting for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        prefix: prefix
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("prefix", "prefix", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)


class GroupThirdPartyVoiceMailSupportGetRequest(OCIRequest):
    """
    Request the group level data associated with Third-Party Voice Mail Support.

    The response is either a ``GroupThirdPartyVoiceMailSupportGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupThirdPartyVoiceMailSupportModifyRequest(OCIRequest):
    """
    Modify the Third Party Voice Mail Support settings for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        group_server: groupServer
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("group_server", "groupServer", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    group_server: str = Field(type=str, required=False, mutable=False)


class GroupTimeScheduleDeleteRequest(OCIRequest):
    """
    Delete a time schedule from a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        time_schedule_name: timeScheduleName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    time_schedule_name: str = Field(type=str, required=True, mutable=False)


class GroupTimeScheduleGetListRequest(OCIRequest):
    """
    Request a list of all time schedules in a group.

    The response is either a ``GroupTimeScheduleGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupTimeScheduleGetRequest(OCIRequest):
    """
    Request to get a group time schedule.

    The response is either a ``GroupTimeScheduleGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        time_schedule_name: timeScheduleName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    time_schedule_name: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupDeleteInstanceRequest(OCIRequest):
    """
    Delete a Trunk Group Instance from a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupGetAvailableDetailListRequest(OCIRequest):
    """
    Requests the list of available trunk groups within a group.

    The response is either ``GroupTrunkGroupGetAvailableDetailListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupGetInstanceListRequest14(OCIRequest):
    """
    Get a list of Trunk Groups for the group or enterprise.

    It is possible to restrict the results to a particular department, or expand the list
    to the entire enterprise.

    The response is either a ``GroupTrunkGroupGetInstanceListResponse14()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
        include_enterprise_trunk_groups: includeEnterpriseTrunkGroups
        only_trunk_groups_with_device: onlyTrunkGroupsWithDevice
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
        E("include_enterprise_trunk_groups", "includeEnterpriseTrunkGroups", bool),
        E("only_trunk_groups_with_device", "onlyTrunkGroupsWithDevice", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)
    include_enterprise_trunk_groups: bool = Field(type=bool, required=False, mutable=False)
    only_trunk_groups_with_device: bool = Field(type=bool, required=False, mutable=False)


class GroupTrunkGroupGetInstanceListRequest14sp4(OCIRequest):
    """
    Get a list of Trunk Groups for the group or enterprise.

    It is possible to restrict the results to a particular department, or expand the list
    to the entire enterprise.

    The response is either a ``GroupTrunkGroupGetInstanceListResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
        include_enterprise_trunk_groups: includeEnterpriseTrunkGroups
        only_trunk_groups_with_device: onlyTrunkGroupsWithDevice
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
        E("include_enterprise_trunk_groups", "includeEnterpriseTrunkGroups", bool),
        E("only_trunk_groups_with_device", "onlyTrunkGroupsWithDevice", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)
    include_enterprise_trunk_groups: bool = Field(type=bool, required=False, mutable=False)
    only_trunk_groups_with_device: bool = Field(type=bool, required=False, mutable=False)


class GroupTrunkGroupGetInstanceRequest14(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse14()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupGetInstanceRequest14sp1(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse14sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupGetRequest(OCIRequest):
    """
    Get the maximum permissible active trunk group calls for the group.

    The response is either a ``GroupTrunkGroupGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupGetRequest14sp1(OCIRequest):
    """
    Get the maximum and bursting maximum permissible active trunk group calls for the
    group.

    The response is either a ``GroupTrunkGroupGetResponse14sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupGetRequest14sp9(OCIRequest):
    """
    Get the maximum and bursting maximum permissible active trunk group calls for the
    group.

    The response is either a ``GroupTrunkGroupGetResponse14sp9()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupUserCreationTaskAddRequest(OCIRequest):
    """
    Add a user creation task for a trunk group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        task_name: taskName
        user_id_format: userIdFormat
        user_id_domain: userIdDomain
        populate_extension: populateExtension
        line_port_format: linePortFormat
        line_port_domain: linePortDomain
        populate_contact: populateContact
        contact_format: contactFormat
        contact_domain: contactDomain
        user_phone_numbers: userPhoneNumbers
        user_extensions: userExtensions
        service_pack_name: servicePackName
        user_service: userService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
        E("user_id_format", "userIdFormat", str, is_required=True),
        E("user_id_domain", "userIdDomain", str, is_required=True),
        E("populate_extension", "populateExtension", bool, is_required=True),
        E("line_port_format", "linePortFormat", str, is_required=True),
        E("line_port_domain", "linePortDomain", str, is_required=True),
        E("populate_contact", "populateContact", bool, is_required=True),
        E("contact_format", "contactFormat", str),
        E("contact_domain", "contactDomain", str),
        E("user_phone_numbers", "userPhoneNumbers", str, is_complex=True),  # unknown
        E("user_extensions", "userExtensions", str, is_complex=True),  # unknown
        E("service_pack_name", "servicePackName", str, is_array=True),
        E("user_service", "userService", str, is_array=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)
    user_id_format: str = Field(type=str, required=True, mutable=False)
    user_id_domain: str = Field(type=str, required=True, mutable=False)
    populate_extension: bool = Field(type=bool, required=True, mutable=False)
    line_port_format: str = Field(type=str, required=True, mutable=False)
    line_port_domain: str = Field(type=str, required=True, mutable=False)
    populate_contact: bool = Field(type=bool, required=True, mutable=False)
    contact_format: str = Field(type=str, required=False, mutable=False)
    contact_domain: str = Field(type=str, required=False, mutable=False)
    user_phone_numbers: str = Field(type=str, required=False, mutable=False)
    user_extensions: str = Field(type=str, required=False, mutable=False)
    service_pack_name: "List[str]" = Field(type=list, required=False, mutable=False)
    user_service: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupTrunkGroupUserCreationTaskDeleteRequest(OCIRequest):
    """
    Delete a user creation task for a trunk group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        task_name: taskName
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupUserCreationTaskGetListRequest(OCIRequest):
    """
    Get the list of user creation tasks for a trunk group.

    The response is either ``GroupTrunkGroupUserCreationTaskGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupUserCreationTaskGetRequest(OCIRequest):
    """
    Request the details of a specified user creation task for a trunk group.

    The response is either ``GroupTrunkGroupUserCreationTaskGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        task_name: taskName
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)


class GroupVirtualOnNetEnterpriseExtensionsDeleteUserRequest(OCIRequest):
    """
    Delete an existing Virtual On-Net user from a Group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class GroupVirtualOnNetEnterpriseExtensionsGetUserRequest(OCIRequest):
    """
    Get an existing Virtual On-Net user from a Group.

    The response is either a ``GroupVirtualOnNetEnterpriseExtensionsGetUserResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class GroupVirtualOnNetEnterpriseExtensionsModifyUserRequest(OCIRequest):
    """
    Modify an existing Virtual On-Net user of a Group.

    The serviceProviderId, groupId and phoneNumber combination uniquely identifies a
    Virtual On-Net User.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        phone_number: phoneNumber
        extension: extension
        first_name: firstName
        last_name: lastName
        calling_line_id_first_name: callingLineIdFirstName
        calling_line_id_last_name: callingLineIdLastName
        virtual_on_net_call_type_name: virtualOnNetCallTypeName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("extension", "extension", str),
        E("first_name", "firstName", str),
        E("last_name", "lastName", str),
        E("calling_line_id_first_name", "callingLineIdFirstName", str),
        E("calling_line_id_last_name", "callingLineIdLastName", str),
        E("virtual_on_net_call_type_name", "virtualOnNetCallTypeName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=False, mutable=False)
    virtual_on_net_call_type_name: str = Field(type=str, required=False, mutable=False)


class GroupVoiceMessagingGroupGetPasscodeRulesRequest(OCIRequest):
    """
    Requests the group's voice portal passcode rules setting.

    The response is either ``GroupVoiceMessagingGroupGetPasscodeRulesResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupPortalPasscodeRulesGetRequest()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupGetRequest(OCIRequest):
    """
    Requests the group's Voice Messaging settings.

    The response is either ``GroupVoiceMessagingGroupGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupGetVoicePortalBrandingRequest(OCIRequest):
    """
    Get the group's voice portal branding settings.

    The response is either a ``GroupVoiceMessagingGroupGetVoicePortalBrandingResponse()``
    or an ``ErrorResponse()``.

    Replaced By: ``GroupVoiceMessagingGroupGetVoicePortalBrandingRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupGetVoicePortalBrandingRequest16(OCIRequest):
    """
    Get the group's voice portal branding settings.

    The response is either a
    ``GroupVoiceMessagingGroupGetVoicePortalBrandingResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupGetVoicePortalBrandingRequest20(OCIRequest):
    """
    Get the group's voice portal branding settings.

    The response is either a
    ``GroupVoiceMessagingGroupGetVoicePortalBrandingResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupGetVoicePortalRequest14(OCIRequest):
    """
    Requests the group's voice messaging settings The response is either
    ``GroupVoiceMessagingGroupGetVoicePortalResponse14()`` or ``ErrorResponse()``.

    Replaced by ``GroupVoiceMessagingGroupGetVoicePortalRequest15()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupGetVoicePortalRequest15(OCIRequest):
    """
    Request to get the group voice portal information for a voice messaging group.

    The response is either ``GroupVoiceMessagingGroupGetVoicePortalResponse15()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupGetVoicePortalRequest17(OCIRequest):
    """
    Request to get the group voice portal information for a voice messaging group.

    The response is either ``GroupVoiceMessagingGroupGetVoicePortalResponse17()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupGetVoicePortalRequest17sp4(OCIRequest):
    """
    Request to get the group voice portal information for a voice messaging group.

    The response is either ``GroupVoiceMessagingGroupGetVoicePortalResponse17sp4()`` or
    ``ErrorResponse()``. Replaced by:
    ``GroupVoiceMessagingGroupGetVoicePortalRequest19sp1()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupGetVoicePortalRequest19sp1(OCIRequest):
    """
    Request to get the group voice portal information for a voice messaging group.

    The response is either ``GroupVoiceMessagingGroupGetVoicePortalResponse19sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceMessagingGroupModifyPasscodeRulesRequest(OCIRequest):
    """
    Request to modify the group's voice portal passcode rules setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupPortalPasscodeRulesModifyRequest()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_rule_level: useRuleLevel
        disallow_repeated_digits: disallowRepeatedDigits
        disallow_user_number: disallowUserNumber
        disallow_reversed_user_number: disallowReversedUserNumber
        disallow_old_passcode: disallowOldPasscode
        disallow_reversed_old_passcode: disallowReversedOldPasscode
        min_code_length: minCodeLength
        max_code_length: maxCodeLength
        disable_login_after_max_failed_login_attempts:
            disableLoginAfterMaxFailedLoginAttempts
        max_failed_login_attempts: maxFailedLoginAttempts
        expire_password: expirePassword
        passcode_expires_days: passcodeExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_rule_level", "useRuleLevel", str),
        E("disallow_repeated_digits", "disallowRepeatedDigits", bool),
        E("disallow_user_number", "disallowUserNumber", bool),
        E("disallow_reversed_user_number", "disallowReversedUserNumber", bool),
        E("disallow_old_passcode", "disallowOldPasscode", bool),
        E("disallow_reversed_old_passcode", "disallowReversedOldPasscode", bool),
        E("min_code_length", "minCodeLength", int),
        E("max_code_length", "maxCodeLength", int),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts", bool,
        ),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("expire_password", "expirePassword", bool),
        E("passcode_expires_days", "passcodeExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_rule_level: str = Field(type=str, required=False, mutable=False)
    disallow_repeated_digits: bool = Field(type=bool, required=False, mutable=False)
    disallow_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    min_code_length: int = Field(type=int, required=False, mutable=False)
    max_code_length: int = Field(type=int, required=False, mutable=False)
    disable_login_after_max_failed_login_attempts: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    expire_password: bool = Field(type=bool, required=False, mutable=False)
    passcode_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)


class GroupVoiceMessagingGroupModifyRequest(OCIRequest):
    """
    Request to modify the group's voice messaging settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_mail_server_setting: useMailServerSetting
        warn_caller_before_recording_voice_message: warnCallerBeforeRecordingVoiceMessage
        allow_users_configuring_advanced_settings: allowUsersConfiguringAdvancedSettings
        allow_compose_or_forward_message_to_entire_group:
            allowComposeOrForwardMessageToEntireGroup
        mail_server_net_address: mailServerNetAddress
        mail_server_protocol: mailServerProtocol
        real_delete_for_imap: realDeleteForImap
        max_mailbox_length_minutes: maxMailboxLengthMinutes
        does_message_age: doesMessageAge
        hold_period_days: holdPeriodDays
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_mail_server_setting", "useMailServerSetting", str),
        E(
            "warn_caller_before_recording_voice_message",
            "warnCallerBeforeRecordingVoiceMessage", bool,
        ),
        E(
            "allow_users_configuring_advanced_settings",
            "allowUsersConfiguringAdvancedSettings", bool,
        ),
        E(
            "allow_compose_or_forward_message_to_entire_group",
            "allowComposeOrForwardMessageToEntireGroup", bool,
        ),
        E("mail_server_net_address", "mailServerNetAddress", str),
        E("mail_server_protocol", "mailServerProtocol", str),
        E("real_delete_for_imap", "realDeleteForImap", bool),
        E("max_mailbox_length_minutes", "maxMailboxLengthMinutes", int),
        E("does_message_age", "doesMessageAge", bool),
        E("hold_period_days", "holdPeriodDays", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_mail_server_setting: str = Field(type=str, required=False, mutable=False)
    warn_caller_before_recording_voice_message: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_users_configuring_advanced_settings: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_compose_or_forward_message_to_entire_group: bool = Field(
        type=bool, required=False, mutable=False,
    )
    mail_server_net_address: str = Field(type=str, required=False, mutable=False)
    mail_server_protocol: str = Field(type=str, required=False, mutable=False)
    real_delete_for_imap: bool = Field(type=bool, required=False, mutable=False)
    max_mailbox_length_minutes: int = Field(type=int, required=False, mutable=False)
    does_message_age: bool = Field(type=bool, required=False, mutable=False)
    hold_period_days: int = Field(type=int, required=False, mutable=False)


class GroupVoiceXmlDeleteInstanceRequest(OCIRequest):
    """
    Delete a VoiceXML instance from a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceXmlGetInstanceListRequest(OCIRequest):
    """
    Get a list of VoiceXML instances within a group.

    The response is either ``GroupVoiceXmlGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)


class GroupVoiceXmlGetInstanceRequest(OCIRequest):
    """
    Request to get all the information of a VoiceXML instance.

    The response is either ``GroupVoiceXmlGetInstanceResponse()`` or ``ErrorResponse()``.
    Replaced by: ``GroupVoiceXmlGetInstanceRequest19sp1()``

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class GroupVoiceXmlGetInstanceRequest19sp1(OCIRequest):
    """
    Request to get all the information of a VoiceXML instance.

    The response is either ``GroupVoiceXmlGetInstanceResponse19sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class LoginRequest13mp10(OCIRequest):
    """
    ``LoginRequest13mp10()`` is 2nd stage of the 2 stage OCI login process.

    The signedPassword is not required for external authentication login from a trusted
    host (ACL).

    Attributes:
        user_id: userId
        signed_password: signedPassword
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("signed_password", "signedPassword", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    signed_password: str = Field(type=str, required=False, mutable=False)


class LoginRequest14sp4(OCIRequest):
    """
    ``LoginRequest14sp4()`` is 2nd stage of the 2 stage OCI login process.

    The signedPassword is not required for external authentication login from a trusted
    host (ACL).

    Attributes:
        user_id: userId
        signed_password: signedPassword
        plain_text_password: plainTextPassword
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("signed_password", "signedPassword", str),
        E("plain_text_password", "plainTextPassword", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    signed_password: str = Field(type=str, required=False, mutable=False)
    plain_text_password: str = Field(type=str, required=False, mutable=False)


class LogoutRequest(OCIRequest):
    """
    ``LogoutRequest()`` is sent when an OCI user logs out or when connection is lost.

    This command can be sent either to the server, or to the client from OCS. Response is
    either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        reason: reason
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("reason", "reason", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    reason: str = Field(type=str, required=False, mutable=False)


class PasswordModifyRequest(OCIRequest):
    """
    Modify the password for a user/administrator.

    When oldPassword is specified, password rule applies.  If oldPassword in not
    specified, any password rule related to old password does not apply.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        old_password: oldPassword
        new_password: newPassword
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("old_password", "oldPassword", str),
        E("new_password", "newPassword", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    old_password: str = Field(type=str, required=False, mutable=False)
    new_password: str = Field(type=str, required=True, mutable=False)


class PrimaryInfoGetRequest(OCIRequest):
    """
    Requests information about the primary server for high-availability support.


    Attributes:
        is_private: isPrivate
        is_address_info_requested: isAddressInfoRequested
    """

    _ELEMENTS = (
        E("is_private", "isPrivate", bool, is_required=True),
        E("is_address_info_requested", "isAddressInfoRequested", bool, is_required=True),
    )

    is_private: bool = Field(type=bool, required=True, mutable=False)
    is_address_info_requested: bool = Field(type=bool, required=True, mutable=False)


class PublicClusterGetFullyQualifiedDomainNameRequest(OCIRequest):
    """
    Get the public cluster fully qualified domain name (FQDN).

    The response is either a ``PublicClusterGetFullyQualifiedDomainNameResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class ServiceProviderAccessDeviceCustomTagAddRequest(OCIRequest):
    """
    Request to add a static configuration tag for a service provider access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class ServiceProviderAccessDeviceCustomTagDeleteListRequest(OCIRequest):
    """
    Request to delete static configuration tags for a service provider access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        tag_name: tagName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceCustomTagGetListRequest(OCIRequest):
    """
    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 ``ServiceProviderAccessDeviceCustomTagGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceCustomTagModifyRequest(OCIRequest):
    """
    Request to modify a static configuration tag for a service provider access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class ServiceProviderAccessDeviceDeleteRequest(OCIRequest):
    """
    Request to delete a specified service provider access device.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceFileGetListRequest(OCIRequest):
    """
    Request to get the list of device files managed by the Device Management System, on a
    per-device profile basis.

    The response is either ``ServiceProviderAccessDeviceFileGetListResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderAccessDeviceFileGetListRequest14sp8()``

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceFileGetListRequest14sp8(OCIRequest):
    """
    Request to get the list of device files managed by the Device Management System, on a
    per-device profile basis.

    The response is either ``ServiceProviderAccessDeviceFileGetListResponse14sp8()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceFileGetRequest(OCIRequest):
    """
    Request to get a service provider device profile file.

    The response is either ``ServiceProviderAccessDeviceFileGetResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderAccessDeviceFileGetRequest14sp8()``

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        file_type: fileType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceFileGetRequest14sp8(OCIRequest):
    """
    Request to get a service provider device profile file.

    The response is either ``ServiceProviderAccessDeviceFileGetResponse14sp8()`` or
    ``ErrorResponse()``. Replaced by: ``ServiceProviderAccessDeviceFileGetRequest16sp1()``

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceFileGetRequest16sp1(OCIRequest):
    """
    Request to get a service provider device profile file.

    The response is either ``ServiceProviderAccessDeviceFileGetResponse16sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceFileGetRequest20(OCIRequest):
    """
    Request to get a service provider device profile file.

    The response is either ``ServiceProviderAccessDeviceFileGetResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceGetRequest14(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.

    The response is either ``ServiceProviderAccessDeviceGetResponse14()`` or
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderAccessDeviceGetRequest14sp3()``

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceGetRequest14sp3(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.

    The response is either ``ServiceProviderAccessDeviceGetResponse14sp3()`` or
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderAccessDeviceGetRequest14sp6()``

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceGetRequest14sp6(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.

    The response is either ``ServiceProviderAccessDeviceGetResponse14sp6()`` or
    ``ErrorResponse()``. Replaced by: ``ServiceProviderAccessDeviceGetRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceGetRequest16(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.

    The response is either ``ServiceProviderAccessDeviceGetResponse16()`` or
    ``ErrorResponse()``. Replaced by: ``ServiceProviderAccessDeviceGetRequest19()``

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceGetRequest18sp1(OCIRequest):
    """
    Requests the configuration of a specified service provider access device.

    The response is either ``ServiceProviderAccessDeviceGetResponse18sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAccessDeviceModifyUserRequest(OCIRequest):
    """
    Request to modify attributes for line/ports assigned on the service provider device
    profile.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode and ignored in AS data mode: privateIdentity

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        line_port: linePort
        private_identity: privateIdentity
        is_primary_line_port: isPrimaryLinePort
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("line_port", "linePort", str, is_required=True),
        E("private_identity", "privateIdentity", str),
        E("is_primary_line_port", "isPrimaryLinePort", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    line_port: str = Field(type=str, required=True, mutable=False)
    private_identity: str = Field(type=str, required=False, mutable=False)
    is_primary_line_port: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderAccessDeviceResetRequest(OCIRequest):
    """
    Reset a specific service provider SIP device that supports the reset operation.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminAddRequest14(OCIRequest):
    """
    Add a service provider administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        user_id: userId
        first_name: firstName
        last_name: lastName
        password: password
        language: language
        administrator_type: administratorType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
        E("first_name", "firstName", str),
        E("last_name", "lastName", str),
        E("password", "password", str),
        E("language", "language", str),
        E("administrator_type", "administratorType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    language: str = Field(type=str, required=False, mutable=False)
    administrator_type: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminDeleteRequest(OCIRequest):
    """
    Delete a service provider administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetListRequest14(OCIRequest):
    """
    Get a list of service provider administrators.

    The response is either a ``ServiceProviderAdminGetListResponse14()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetPolicyRequest14(OCIRequest):
    """
    Requests the service provider administrator's policy settings.

    The response is either ``ServiceProviderAdminGetPolicyResponse14()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetPolicyRequest16sp1(OCIRequest):
    """
    Requests the service provider administrator's policy settings.

    The response is either ``ServiceProviderAdminGetPolicyResponse16sp1()`` or
    ``ErrorResponse()``. Replaced by: ``ServiceProviderAdminGetPolicyRequest17()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetPolicyRequest16sp2(OCIRequest):
    """
    Requests the service provider administrator's policy settings.

    The response is either ``ServiceProviderAdminGetPolicyResponse16sp2()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetPolicyRequest17(OCIRequest):
    """
    Requests the service provider administrator's policy settings.

    The response is either ``ServiceProviderAdminGetPolicyResponse17()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetPolicyRequest17sp1(OCIRequest):
    """
    Requests the service provider administrator's policy settings.

    The response is either ``ServiceProviderAdminGetPolicyResponse17sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetPolicyRequest17sp3(OCIRequest):
    """
    Requests the service provider administrator's policy settings.

    The response is either ``ServiceProviderAdminGetPolicyResponse17sp3()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetPolicyRequest18(OCIRequest):
    """
    Requests the service provider administrator's policy settings.

    The response is either ``ServiceProviderAdminGetPolicyResponse18()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetPolicyRequest20(OCIRequest):
    """
    Requests the service provider administrator's policy settings.

    The response is either ``ServiceProviderAdminGetPolicyResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminGetRequest14(OCIRequest):
    """
    Get a service provider administrators profile.

    The response is either a ``ServiceProviderAdminGetResponse14()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdminModifyPolicyRequest14(OCIRequest):
    """
    Request to modify the service provider administrator's policy settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The
    networkPolicyAccess is only modified for the enterprise administrator.  The following
    elements are only used in AS data mode: dialableCallerIDAccess
    verifyTranslationAndroutingAccess

    Attributes:
        user_id: userId
        profile_access: profileAccess
        group_access: groupAccess
        user_access: userAccess
        admin_access: adminAccess
        department_access: departmentAccess
        access_device_access: accessDeviceAccess
        phone_number_extension_access: phoneNumberExtensionAccess
        calling_line_id_number_access: callingLineIdNumberAccess
        service_access: serviceAccess
        service_pack_access: servicePackAccess
        session_admission_control_access: sessionAdmissionControlAccess
        web_branding_access: webBrandingAccess
        office_zone_access: officeZoneAccess
        communication_barring_access: communicationBarringAccess
        network_policy_access: networkPolicyAccess
        number_activation_access: numberActivationAccess
        dialable_caller_id_access: dialableCallerIDAccess
        verify_translation_and_routing_access: verifyTranslationAndRoutingAccess
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("profile_access", "profileAccess", str),
        E("group_access", "groupAccess", str),
        E("user_access", "userAccess", str),
        E("admin_access", "adminAccess", str),
        E("department_access", "departmentAccess", str),
        E("access_device_access", "accessDeviceAccess", str),
        E("phone_number_extension_access", "phoneNumberExtensionAccess", str),
        E("calling_line_id_number_access", "callingLineIdNumberAccess", str),
        E("service_access", "serviceAccess", str),
        E("service_pack_access", "servicePackAccess", str),
        E("session_admission_control_access", "sessionAdmissionControlAccess", str),
        E("web_branding_access", "webBrandingAccess", str),
        E("office_zone_access", "officeZoneAccess", str),
        E("communication_barring_access", "communicationBarringAccess", str),
        E("network_policy_access", "networkPolicyAccess", str),
        E("number_activation_access", "numberActivationAccess", str),
        E("dialable_caller_id_access", "dialableCallerIDAccess", str),
        E("verify_translation_and_routing_access", "verifyTranslationAndRoutingAccess", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    profile_access: str = Field(type=str, required=False, mutable=False)
    group_access: str = Field(type=str, required=False, mutable=False)
    user_access: str = Field(type=str, required=False, mutable=False)
    admin_access: str = Field(type=str, required=False, mutable=False)
    department_access: str = Field(type=str, required=False, mutable=False)
    access_device_access: str = Field(type=str, required=False, mutable=False)
    phone_number_extension_access: str = Field(type=str, required=False, mutable=False)
    calling_line_id_number_access: str = Field(type=str, required=False, mutable=False)
    service_access: str = Field(type=str, required=False, mutable=False)
    service_pack_access: str = Field(type=str, required=False, mutable=False)
    session_admission_control_access: str = Field(type=str, required=False, mutable=False)
    web_branding_access: str = Field(type=str, required=False, mutable=False)
    office_zone_access: str = Field(type=str, required=False, mutable=False)
    communication_barring_access: str = Field(type=str, required=False, mutable=False)
    network_policy_access: str = Field(type=str, required=False, mutable=False)
    number_activation_access: str = Field(type=str, required=False, mutable=False)
    dialable_caller_id_access: str = Field(type=str, required=False, mutable=False)
    verify_translation_and_routing_access: str = Field(
        type=str, required=False, mutable=False,
    )


class ServiceProviderAdminModifyRequest(OCIRequest):
    """
    Modify a service provider administrator.

    Since old password is not specified here, any password rule related to old password
    does not apply.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        first_name: firstName
        last_name: lastName
        password: password
        language: language
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("first_name", "firstName", str),
        E("last_name", "lastName", str),
        E("password", "password", str),
        E("language", "language", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    language: str = Field(type=str, required=False, mutable=False)


class ServiceProviderAdviceOfChargeGetRequest(OCIRequest):
    """
    Request to get the list of Advice of Charge service provider parameters.

    The response is either ``ServiceProviderAdviceOfChargeGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAdviceOfChargeModifyRequest(OCIRequest):
    """
    Modify the service provider level Advice Of Charge service provider settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        use_sp_level_ao_c_settings: useSPLevelAoCSettings
        delay_between_notification_seconds: delayBetweenNotificationSeconds
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("use_sp_level_ao_c_settings", "useSPLevelAoCSettings", bool),
        E("delay_between_notification_seconds", "delayBetweenNotificationSeconds", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_sp_level_ao_c_settings: bool = Field(type=bool, required=False, mutable=False)
    delay_between_notification_seconds: int = Field(type=int, required=False, mutable=False)


class ServiceProviderAnswerConfirmationGetRequest(OCIRequest):
    """
    Get a service provider or enterprise's answer confirmation settings.

    The response is either a ``ServiceProviderAnswerConfirmationGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderAnswerConfirmationGetRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderAnswerConfirmationGetRequest16(OCIRequest):
    """
    Get a service provider or enterprise's answer confirmation settings.

    The response is either a ``ServiceProviderAnswerConfirmationGetResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderApplicationServerSetGetRequest(OCIRequest):
    """
    Get the Application Server set for a service provider or enterprise.

    The response is either a ``ServiceProviderApplicationServerSetGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderApplicationServerSetModifyRequest(OCIRequest):
    """
    Modify the Application Server set assigned to the service provider or enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        application_server_set_name: applicationServerSetName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("application_server_set_name", "applicationServerSetName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    application_server_set_name: str = Field(type=str, required=False, mutable=False)


class ServiceProviderBroadWorksCommunicatorGetRequest(OCIRequest):
    """
    Request to get Configuration Server for a specified service provider.

    The response is either a ``ServiceProviderBroadWorksCommunicatorGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderBroadWorksCommunicatorModifyRequest(OCIRequest):
    """
    Request to modify the Configuration URL.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        configuration_server_url: configurationServerURL
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str),
        E("configuration_server_url", "configurationServerURL", str),
    )

    service_provider_id: str = Field(type=str, required=False, mutable=False)
    configuration_server_url: str = Field(type=str, required=False, mutable=False)


class ServiceProviderBroadWorksMobilityGetRequest(OCIRequest):
    """
    Get the service provider BroadWorks Mobility service settings.

    The response is either a ``ServiceProviderBroadWorksMobilityGetResponse()`` or an
    ``ErrorResponse()``. Replaced by:
    ``ServiceProviderBroadWorksMobilityGetRequest19sp1()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderBroadWorksMobilityGetRequest19sp1(OCIRequest):
    """
    Get the service provider BroadWorks Mobility service settings.

    The response is either a ``ServiceProviderBroadWorksMobilityGetResponse19sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderBroadWorksMobilityMobileSubscriberDirectoryNumberAddListRequest(OCIRequest):
    """
    Adds Mobile Subscriber Directory Numbers to a service provider.

    It is possible to add a single DN, or a list of DNs.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by
    ``ServiceProviderBroadWorksMobilityMobileSubscriberDirectoryNumberAddListRequest21()``.

    Attributes:
        service_provider_id: serviceProviderId
        mobile_subscriber_directory_number: mobileSubscriberDirectoryNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "mobile_subscriber_directory_number", "mobileSubscriberDirectoryNumber", str,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    mobile_subscriber_directory_number: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderBroadWorksMobilityMobileSubscriberDirectoryNumberAddListRequest21(OCIRequest):
    """
    Adds Mobile Subscriber Directory Numbers to a service provider-mobile network
    combination.

    It is possible to add a single DN, or a list of DNs.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        mobile_network_name: mobileNetworkName
        mobile_subscriber_directory_number: mobileSubscriberDirectoryNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("mobile_network_name", "mobileNetworkName", str, is_required=True),
        E(
            "mobile_subscriber_directory_number", "mobileSubscriberDirectoryNumber", str,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    mobile_network_name: str = Field(type=str, required=True, mutable=False)
    mobile_subscriber_directory_number: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderBroadWorksMobilityMobileSubscriberDirectoryNumberDeleteListRequest(OCIRequest):
    """
    Deletes Mobile Subscriber Directory Numbers from a service provider.

    It is possible to delete either: a single number, or a list of numbers.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        mobile_subscriber_directory_number: mobileSubscriberDirectoryNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "mobile_subscriber_directory_number", "mobileSubscriberDirectoryNumber", str,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    mobile_subscriber_directory_number: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderBroadWorksMobilityMobileSubscriberDirectoryNumberGetAvailableListRequest(OCIRequest):
    """
    Request a list of available Mobile Subscriber Directory Numbers not yet assigned to
    any group.

    This command is applicable only for service providers and will fail for enterprises.

    The response is either
    ``ServiceProviderBroadWorksMobilityMobileSubscriberDirectoryNumberGetAvailableListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderBroadWorksMobilityModifyRequest(OCIRequest):
    """
    Modify the service provider level BroadWorks Mobility service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        use_setting_level: useSettingLevel
        enable_location_services: enableLocationServices
        enable_msrn_lookup: enableMSRNLookup
        enable_mobile_state_checking: enableMobileStateChecking
        deny_call_originations: denyCallOriginations
        deny_call_terminations: denyCallTerminations
        enable_announcement_suppression: enableAnnouncementSuppression
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("use_setting_level", "useSettingLevel", str),
        E("enable_location_services", "enableLocationServices", bool),
        E("enable_msrn_lookup", "enableMSRNLookup", bool),
        E("enable_mobile_state_checking", "enableMobileStateChecking", bool),
        E("deny_call_originations", "denyCallOriginations", bool),
        E("deny_call_terminations", "denyCallTerminations", bool),
        E("enable_announcement_suppression", "enableAnnouncementSuppression", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_setting_level: str = Field(type=str, required=False, mutable=False)
    enable_location_services: bool = Field(type=bool, required=False, mutable=False)
    enable_msrn_lookup: bool = Field(type=bool, required=False, mutable=False)
    enable_mobile_state_checking: bool = Field(type=bool, required=False, mutable=False)
    deny_call_originations: bool = Field(type=bool, required=False, mutable=False)
    deny_call_terminations: bool = Field(type=bool, required=False, mutable=False)
    enable_announcement_suppression: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderCPEConfigRebuildDeviceConfigFileRequest(OCIRequest):
    """
    Rebuild the config file for a specified device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        force: force
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("force", "force", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    force: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderCPEConfigReorderDeviceLinePortsRequest(OCIRequest):
    """
    Reorder the lines of a Service Provider 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
    ``ServiceProviderAccessDeviceGetRequest()`` command.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        ordered_line_port_list: orderedLinePortList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("ordered_line_port_list", "orderedLinePortList", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    ordered_line_port_list: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCPEConfigResetDeviceRequest(OCIRequest):
    """
    Reset a specific service provider or enterprise device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        force: force
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("force", "force", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    force: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest14(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse14()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest14sp1(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse14sp1()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest14sp4(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse14sp4()`` or
    an ``ErrorResponse()``.

    Replaced By : ``ServiceProviderCallProcessingGetPolicyRequest15()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest14sp7(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse14sp7()`` or
    an ``ErrorResponse()``.

    Replaced By: ``ServiceProviderCallProcessingGetPolicyRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest15(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse15()`` or an
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderCallProcessingGetPolicyRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest15sp2(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse15sp2()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest16(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest16sp2(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse16sp2()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest17(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest17sp3(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse17sp3()`` or
    an ``ErrorResponse()``. Replaced by
    ``ServiceProviderCallProcessingGetPolicyResponse17sp4()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest17sp4(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse17sp4()`` or
    an ``ErrorResponse()``.

    Replaced By : ``ServiceProviderCallProcessingGetPolicyRequest18sp1()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest18sp1(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse18sp1()`` or
    an ``ErrorResponse()``. Replaced by:
    ``ServiceProviderCallProcessingGetPolicyRequest19sp1()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingGetPolicyRequest19sp1(OCIRequest):
    """
    Request the service provider level data associated with Call Processing Policy.

    The response is either a ``ServiceProviderCallProcessingGetPolicyResponse18sp1()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCallProcessingModifyPolicyRequest14(OCIRequest):
    """
    Modify the service provider level data associated with Call Procesing Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        network_usage_selection: networkUsageSelection
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_external_calls_via_private_dialing_plan:
            overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        enforce_enterprise_calling_line_identity_restriction:
            enforceEnterpriseCallingLineIdentityRestriction
        use_setting_level: useSettingLevel
        conference_uri: conferenceURI
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
        clid_policy: clidPolicy
        emergency_clid_policy: emergencyClidPolicy
        allow_alternate_numbers_for_redirecting_identity:
            allowAlternateNumbersForRedirectingIdentity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("network_usage_selection", "networkUsageSelection", str),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_external_calls_via_private_dialing_plan",
            "overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan", bool,
        ),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E("use_setting_level", "useSettingLevel", str),
        E("conference_uri", "conferenceURI", str),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_external_calls_via_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_setting_level: str = Field(type=str, required=False, mutable=False)
    conference_uri: str = Field(type=str, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )


class ServiceProviderCallProcessingModifyPolicyRequest15(OCIRequest):
    """
    Modify the service provider level data associated with Call Procesing Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: useServiceProviderDCLIDSetting
    enableDialableCallerID allowConfigurableCLIDForRedirectingIdentity
    enterpriseCallsCLIDPolicy groupCallsCLIDPolicy

    Attributes:
        service_provider_id: serviceProviderId
        use_service_provider_dclid_setting: useServiceProviderDCLIDSetting
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        network_usage_selection: networkUsageSelection
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_private_call_category:
            overrideCLIDRestrictionForPrivateCallCategory
        use_enterprise_clid_for_private_call_category:
            useEnterpriseCLIDForPrivateCallCategory
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        enforce_enterprise_calling_line_identity_restriction:
            enforceEnterpriseCallingLineIdentityRestriction
        use_setting_level: useSettingLevel
        conference_uri: conferenceURI
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
        clid_policy: clidPolicy
        emergency_clid_policy: emergencyClidPolicy
        allow_alternate_numbers_for_redirecting_identity:
            allowAlternateNumbersForRedirectingIdentity
        enable_dialable_caller_id: enableDialableCallerID
        block_calling_name_for_external_calls: blockCallingNameForExternalCalls
        allow_configurable_clid_for_redirecting_identity:
            allowConfigurableCLIDForRedirectingIdentity
        enterprise_calls_clid_policy: enterpriseCallsCLIDPolicy
        group_calls_clid_policy: groupCallsCLIDPolicy
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("use_service_provider_dclid_setting", "useServiceProviderDCLIDSetting", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("network_usage_selection", "networkUsageSelection", str),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E("use_setting_level", "useSettingLevel", str),
        E("conference_uri", "conferenceURI", str),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("group_calls_clid_policy", "groupCallsCLIDPolicy", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_service_provider_dclid_setting: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_setting_level: str = Field(type=str, required=False, mutable=False)
    conference_uri: str = Field(type=str, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)


class ServiceProviderCommunicationBarringCriteriaAssignListRequest(OCIRequest):
    """
    Assign a list of Communication Barring Criteria to a service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderCommunicationBarringCriteriaGetAssignedListRequest(OCIRequest):
    """
    Get a list of Communication Barring Criteria assigned to a service provider.

    The response is either a
    ``ServiceProviderCommunicationBarringCriteriaGetAssignedListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringCriteriaUnassignListRequest(OCIRequest):
    """
    Unassign a list of Communication Barring Criteria from a service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderCommunicationBarringDigitPatternCriteriaAddRequest(OCIRequest):
    """
    Add a new Communication Barring Digit Pattern Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        description: description
        match_digit_pattern: matchDigitPattern
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("match_digit_pattern", "matchDigitPattern", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    match_digit_pattern: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderCommunicationBarringDigitPatternCriteriaDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Digit Pattern Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringDigitPatternCriteriaGetListRequest(OCIRequest):
    """
    Get the list of all Digit Pattern Criteria defined for the service provider.

    The response is either a
    ``ServiceProviderCommunicationBarringDigitPatternCriteriaGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringDigitPatternCriteriaGetRequest(OCIRequest):
    """
    Get an existing Digit Pattern Criteria.

    The response is either a
    ``ServiceProviderCommunicationBarringDigitPatternCriteriaGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringDigitPatternCriteriaModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Digit Pattern Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        new_name: newName
        description: description
        add_match_digit_pattern: addMatchDigitPattern
        delete_match_digit_pattern: deleteMatchDigitPattern
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("add_match_digit_pattern", "addMatchDigitPattern", str, is_array=True),
        E("delete_match_digit_pattern", "deleteMatchDigitPattern", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    add_match_digit_pattern: "List[str]" = Field(type=list, required=False, mutable=False)
    delete_match_digit_pattern: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderCommunicationBarringIncomingCriteriaAssignListRequest(OCIRequest):
    """
    Assign a list of Communication Barring Incoming Criteria to a service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringIncomingCriteriaGetAssignedListRequest(OCIRequest):
    """
    Get a list of Communication Barring Incoming Criteria assigned to a service provider.

    The response is either a
    ``ServiceProviderCommunicationBarringIncomingCriteriaGetAssignedListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringIncomingCriteriaUnassignListRequest(OCIRequest):
    """
    Unassign a list of Communication Barring Incoming Criteria from a service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileDeleteRequest(OCIRequest):
    """
    Deletes an existing Communication Barring Profile.

    Optionally, a new default profile can be chosen if the current default profile is
    being deleted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        default_profile: defaultProfile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("default_profile", "defaultProfile", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    default_profile: str = Field(type=str, required=False, mutable=False)


class ServiceProviderCommunicationBarringProfileGetCriteriaUsageListRequest(OCIRequest):
    """
    Get a list of Communication Barring profiles within a service provider that have a
    given Communication Barring Criteria assigned.

    The response is either a ServiceProviderCommunicationBarring
    ``ProfileGetCriteriaUsageListResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileGetDigitPatternCriteriaUsageListRequest(OCIRequest):
    """
    Get the list of Profiles that use a specific Digit Pattern Criteria.

    The response is either a
    ``ServiceProviderCommunicationBarringProfileGetDigitPatternCriteriaUsageListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileGetIncomingCriteriaUsageListRequest(OCIRequest):
    """
    Get a list of Communication Barring profiles within a service provider that have a
    given Communication Barring Incoming Criteria assigned.

    The response is either a ServiceProviderCommunicationBarring
    ``ProfileGetIncomingCriteriaUsageListResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileGetListRequest(OCIRequest):
    """
    Get the list of all Communication Barring Profiles.

    The response is either a
    ``ServiceProviderCommunicationBarringProfileGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileGetRequest(OCIRequest):
    """
    Get an existing Communication Barring Profile.

    The response is either a ``ServiceProviderCommunicationBarringProfileGetResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileGetRequest17sp3(OCIRequest):
    """
    Get an existing Communication Barring Profile.

    The response is either a
    ``ServiceProviderCommunicationBarringProfileGetResponse17sp3()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileGetRequest19sp1(OCIRequest):
    """
    Get an existing Communication Barring Profile.

    The response is either a
    ``ServiceProviderCommunicationBarringProfileGetResponse19sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileModifyDefaultRequest(OCIRequest):
    """
    Modifies the default Communication Barring Profile of a Service Provider.

    If a default has been previously selected, this command will swap the default profile
    with the profile provided.  Selecting a nil profile will cause the service provider to
    not have a default Communicaton Barring Profile.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDeleteRequest(OCIRequest):
    """
    Delete a service provider or enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDeviceManagementInProgressAndPendingEventCancelRequest(OCIRequest):
    """
    Cancel pending and in progress events.

    A list of individual events can be canceled.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        event_id: eventId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("event_id", "eventId", int, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    event_id: int = Field(type=int, required=True, mutable=False)


class ServiceProviderDeviceProfileAuthenticationPasswordRulesGetRequest(OCIRequest):
    """
    Request to get the service provider level device profile authentication password rule
    settings.

    The response is either a
    ``ServiceProviderDeviceProfileAuthenticationPasswordRulesGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDeviceProfileAuthenticationPasswordRulesModifyRequest(OCIRequest):
    """
    Request to modify the service provider level device profile authentication password
    rule settings.

    The useServiceProviderSettings element can only be modified by a system administrator
    or a provisioning administrator.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        use_service_provider_settings: useServiceProviderSettings
        disallow_authentication_name: disallowAuthenticationName
        disallow_old_password: disallowOldPassword
        disallow_reversed_old_password: disallowReversedOldPassword
        restrict_min_digits: restrictMinDigits
        min_digits: minDigits
        restrict_min_upper_case_letters: restrictMinUpperCaseLetters
        min_upper_case_letters: minUpperCaseLetters
        restrict_min_lower_case_letters: restrictMinLowerCaseLetters
        min_lower_case_letters: minLowerCaseLetters
        restrict_min_non_alphanumeric_characters: restrictMinNonAlphanumericCharacters
        min_non_alphanumeric_characters: minNonAlphanumericCharacters
        min_length: minLength
        send_permanent_lockout_notification: sendPermanentLockoutNotification
        permanent_lockout_notify_email_address: permanentLockoutNotifyEmailAddress
        device_profile_authentication_lockout_type: deviceProfileAuthenticationLockoutType
        device_profile_temporary_lockout_threshold: deviceProfileTemporaryLockoutThreshold
        device_profile_wait_algorithm: deviceProfileWaitAlgorithm
        device_profile_lockout_fixed_minutes: deviceProfileLockoutFixedMinutes
        device_profile_permanent_lockout_threshold: deviceProfilePermanentLockoutThreshold
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("use_service_provider_settings", "useServiceProviderSettings", bool),
        E("disallow_authentication_name", "disallowAuthenticationName", bool),
        E("disallow_old_password", "disallowOldPassword", bool),
        E("disallow_reversed_old_password", "disallowReversedOldPassword", bool),
        E("restrict_min_digits", "restrictMinDigits", bool),
        E("min_digits", "minDigits", int),
        E("restrict_min_upper_case_letters", "restrictMinUpperCaseLetters", bool),
        E("min_upper_case_letters", "minUpperCaseLetters", int),
        E("restrict_min_lower_case_letters", "restrictMinLowerCaseLetters", bool),
        E("min_lower_case_letters", "minLowerCaseLetters", int),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters", bool,
        ),
        E("min_non_alphanumeric_characters", "minNonAlphanumericCharacters", int),
        E("min_length", "minLength", int),
        E("send_permanent_lockout_notification", "sendPermanentLockoutNotification", bool),
        E(
            "permanent_lockout_notify_email_address",
            "permanentLockoutNotifyEmailAddress", str,
        ),
        E(
            "device_profile_authentication_lockout_type",
            "deviceProfileAuthenticationLockoutType", str,
        ),
        E(
            "device_profile_temporary_lockout_threshold",
            "deviceProfileTemporaryLockoutThreshold", int,
        ),
        E("device_profile_wait_algorithm", "deviceProfileWaitAlgorithm", str),
        E("device_profile_lockout_fixed_minutes", "deviceProfileLockoutFixedMinutes", str),
        E(
            "device_profile_permanent_lockout_threshold",
            "deviceProfilePermanentLockoutThreshold", int,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_service_provider_settings: bool = Field(type=bool, required=False, mutable=False)
    disallow_authentication_name: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_password: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_password: bool = Field(type=bool, required=False, mutable=False)
    restrict_min_digits: bool = Field(type=bool, required=False, mutable=False)
    min_digits: int = Field(type=int, required=False, mutable=False)
    restrict_min_upper_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_upper_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_lower_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_lower_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_non_alphanumeric_characters: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_non_alphanumeric_characters: int = Field(type=int, required=False, mutable=False)
    min_length: int = Field(type=int, required=False, mutable=False)
    send_permanent_lockout_notification: bool = Field(
        type=bool, required=False, mutable=False,
    )
    permanent_lockout_notify_email_address: str = Field(
        type=str, required=False, mutable=False,
    )
    device_profile_authentication_lockout_type: str = Field(
        type=str, required=False, mutable=False,
    )
    device_profile_temporary_lockout_threshold: int = Field(
        type=int, required=False, mutable=False,
    )
    device_profile_wait_algorithm: str = Field(type=str, required=False, mutable=False)
    device_profile_lockout_fixed_minutes: str = Field(type=str, required=False, mutable=False)
    device_profile_permanent_lockout_threshold: int = Field(
        type=int, required=False, mutable=False,
    )


class ServiceProviderDialPlanPolicyAddAccessCodeRequest(OCIRequest):
    """
    Request to add a Service Provider level Dial Plan Access Code and its all attribues.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        access_code: accessCode
        include_code_for_network_translations_and_routing:
            includeCodeForNetworkTranslationsAndRouting
        include_code_for_screening_services: includeCodeForScreeningServices
        enable_secondary_dial_tone: enableSecondaryDialTone
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("access_code", "accessCode", str, is_required=True),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting", bool, is_required=True,
        ),
        E(
            "include_code_for_screening_services", "includeCodeForScreeningServices",
            bool, is_required=True,
        ),
        E("enable_secondary_dial_tone", "enableSecondaryDialTone", bool, is_required=True),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    access_code: str = Field(type=str, required=True, mutable=False)
    include_code_for_network_translations_and_routing: bool = Field(
        type=bool, required=True, mutable=False,
    )
    include_code_for_screening_services: bool = Field(type=bool, required=True, mutable=False)
    enable_secondary_dial_tone: bool = Field(type=bool, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class ServiceProviderDialPlanPolicyDeleteAccessCodeRequest(OCIRequest):
    """
    Request to delete a Service Provider level Dial Plan Access Code and its all
    attribues.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        access_code: accessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("access_code", "accessCode", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    access_code: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDialPlanPolicyGetAccessCodeListRequest(OCIRequest):
    """
    Request the Service Provider level data associated with Dial Plan Policy.

    The response is either a ``ServiceProviderDialPlanPolicyGetAccessCodeListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDialPlanPolicyGetAccessCodeRequest(OCIRequest):
    """
    Request access code data associated with Service Provider level Dial Plan Policy
    access codes.

    The response is either a ``ServiceProviderDialPlanPolicyGetAccessCodeResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        access_code: accessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("access_code", "accessCode", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    access_code: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDialPlanPolicyGetRequest(OCIRequest):
    """
    Request the Service Provider level data associated with Dial Plan Policy.

    The response is either a ``ServiceProviderDialPlanPolicyGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``ServiceProviderDialPlanPolicyGetRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDialPlanPolicyGetRequest17(OCIRequest):
    """
    Request the Service Provider level data associated with Dial Plan Policy.

    The response is either a ``ServiceProviderDialPlanPolicyGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDialPlanPolicyModifyAccessCodeRequest(OCIRequest):
    """
    Request to modify a Service Provider level Dial Plan Access Code and its attribues.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        access_code: accessCode
        include_code_for_network_translations_and_routing:
            includeCodeForNetworkTranslationsAndRouting
        include_code_for_screening_services: includeCodeForScreeningServices
        enable_secondary_dial_tone: enableSecondaryDialTone
        description: description
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("access_code", "accessCode", str, is_required=True),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting", bool,
        ),
        E("include_code_for_screening_services", "includeCodeForScreeningServices", bool),
        E("enable_secondary_dial_tone", "enableSecondaryDialTone", bool),
        E("description", "description", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    access_code: str = Field(type=str, required=True, mutable=False)
    include_code_for_network_translations_and_routing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    include_code_for_screening_services: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_secondary_dial_tone: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class ServiceProviderDialPlanPolicyModifyRequest(OCIRequest):
    """
    Modify the Service Provider level data associated with Dial Plan Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        requires_access_code_for_public_calls: requiresAccessCodeForPublicCalls
        allow_e164_public_calls: allowE164PublicCalls
        prefer_e164_number_format_for_callback_services:
            preferE164NumberFormatForCallbackServices
        public_digit_map: publicDigitMap
        private_digit_map: privateDigitMap
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("requires_access_code_for_public_calls", "requiresAccessCodeForPublicCalls", bool),
        E("allow_e164_public_calls", "allowE164PublicCalls", bool),
        E(
            "prefer_e164_number_format_for_callback_services",
            "preferE164NumberFormatForCallbackServices", bool,
        ),
        E("public_digit_map", "publicDigitMap", str),
        E("private_digit_map", "privateDigitMap", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    requires_access_code_for_public_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_e164_public_calls: bool = Field(type=bool, required=False, mutable=False)
    prefer_e164_number_format_for_callback_services: bool = Field(
        type=bool, required=False, mutable=False,
    )
    public_digit_map: str = Field(type=str, required=False, mutable=False)
    private_digit_map: str = Field(type=str, required=False, mutable=False)


class ServiceProviderDialableCallerIDCriteriaAddRequest(OCIRequest):
    """
    Add a new Dialable Caller ID Criteria.

    Criteria are added at the bottom of the list with the lowest priority.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        description: description
        prefix_digits: prefixDigits
        match_call_type: matchCallType
        match_alternate_call_indicator: matchAlternateCallIndicator
        match_local_category: matchLocalCategory
        match_national_category: matchNationalCategory
        match_interlata_category: matchInterlataCategory
        match_intralata_category: matchIntralataCategory
        match_international_category: matchInternationalCategory
        match_private_category: matchPrivateCategory
        match_emergency_category: matchEmergencyCategory
        match_other_category: matchOtherCategory
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("prefix_digits", "prefixDigits", str),
        E("match_call_type", "matchCallType", str, is_array=True),
        E(
            "match_alternate_call_indicator", "matchAlternateCallIndicator", str,
            is_array=True,
        ),
        E("match_local_category", "matchLocalCategory", bool, is_required=True),
        E("match_national_category", "matchNationalCategory", bool, is_required=True),
        E("match_interlata_category", "matchInterlataCategory", bool, is_required=True),
        E("match_intralata_category", "matchIntralataCategory", bool, is_required=True),
        E(
            "match_international_category", "matchInternationalCategory", bool,
            is_required=True,
        ),
        E("match_private_category", "matchPrivateCategory", bool, is_required=True),
        E("match_emergency_category", "matchEmergencyCategory", bool, is_required=True),
        E("match_other_category", "matchOtherCategory", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    prefix_digits: str = Field(type=str, required=False, mutable=False)
    match_call_type: "List[str]" = Field(type=list, required=False, mutable=False)
    match_alternate_call_indicator: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )
    match_local_category: bool = Field(type=bool, required=True, mutable=False)
    match_national_category: bool = Field(type=bool, required=True, mutable=False)
    match_interlata_category: bool = Field(type=bool, required=True, mutable=False)
    match_intralata_category: bool = Field(type=bool, required=True, mutable=False)
    match_international_category: bool = Field(type=bool, required=True, mutable=False)
    match_private_category: bool = Field(type=bool, required=True, mutable=False)
    match_emergency_category: bool = Field(type=bool, required=True, mutable=False)
    match_other_category: bool = Field(type=bool, required=True, mutable=False)


class ServiceProviderDialableCallerIDCriteriaDeleteRequest(OCIRequest):
    """
    Delete a Dialable Caller ID Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDialableCallerIDCriteriaGetRequest(OCIRequest):
    """
    Get an existing Dialable Caller ID Criteria.

    The response is either a ``ServiceProviderDialableCallerIDCriteriaGetRequest()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDialableCallerIDGetRequest(OCIRequest):
    """
    Get the service provider?s Dialable Caller ID settings and criteria list.

    The response is either a ``ServiceProviderDialableCallerIDGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDigitCollectionGetRequest13mp4(OCIRequest):
    """
    Request the service provider's digit collection attributes.

    The response is either a ``ServiceProviderDigitCollectionGetResponse13mp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDigitCollectionModifyRequest(OCIRequest):
    """
    Modifies the service provider's digit collection attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        access_code: accessCode
        public_digit_map: publicDigitMap
        private_digit_map: privateDigitMap
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("access_code", "accessCode", str),
        E("public_digit_map", "publicDigitMap", str),
        E("private_digit_map", "privateDigitMap", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    access_code: str = Field(type=str, required=False, mutable=False)
    public_digit_map: str = Field(type=str, required=False, mutable=False)
    private_digit_map: str = Field(type=str, required=False, mutable=False)


class ServiceProviderDnGetAvailableListRequest(OCIRequest):
    """
    Request a list of available DNs not yet assigned to any group.

    Dns assigned to the IMRN pool are not listed in the response.

    The response is either ``ServiceProviderDnGetAvailableListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDnGetSummaryListRequest(OCIRequest):
    """
    Request a summary table of all DNs in a service provider.

    Dns assigned to the IMRN pool are not listed in the response.

    The response is either ``ServiceProviderDnGetSummaryListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDomainAssignListRequest(OCIRequest):
    """
    Assign a list of domains to a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        domain: domain
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("domain", "domain", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    domain: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDomainGetAssignedListRequest(OCIRequest):
    """
    Requests the list of all domains assigned to a service provider.

    The response is either ``ServiceProviderDomainGetAssignedListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderDomainUnassignListRequest(OCIRequest):
    """
    Unassign a list of domains from a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        domain: domain
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("domain", "domain", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    domain: str = Field(type=str, required=True, mutable=False)


class ServiceProviderEnhancedCallLogsGetRequest(OCIRequest):
    """
    Get the service provider's enhanced call log settings.

    The response is either a ``ServiceProviderEnhancedCallLogsGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderEnhancedCallLogsGetRequest17sp4(OCIRequest):
    """
    Get the service provider's enhanced call log settings.

    The response is either a ``ServiceProviderEnhancedCallLogsGetResponse17sp4()`` or an
    ``ErrorResponse()``. This command will return an ``ErrorResponse()`` if DBS is used as
    the call log server.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderEnhancedCallLogsModifyRequest(OCIRequest):
    """
    Modify the Service Provider level data associated with Enhanced Call Logs.

    Configures the maximum number of logged calls and maximum age of your user's call
    logs.  Log entries are deleted when either of the two limits is reached.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        max_logged_calls: maxLoggedCalls
        call_expiration_days: callExpirationDays
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("max_logged_calls", "maxLoggedCalls", int),
        E("call_expiration_days", "callExpirationDays", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    max_logged_calls: int = Field(type=int, required=False, mutable=False)
    call_expiration_days: int = Field(type=int, required=False, mutable=False)


class ServiceProviderExternalCustomRingbackGetRequest(OCIRequest):
    """
    Request the service provider level data associated with External Custom Ringback.

    The response is either a ``ServiceProviderExternalCustomRingbackGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderExternalCustomRingbackModifyRequest(OCIRequest):
    """
    Modify the service provider level data associated with External Custom Ringback.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        prefix_digits: prefixDigits
        server_net_address: serverNetAddress
        server_port: serverPort
        timeout_seconds: timeoutSeconds
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("prefix_digits", "prefixDigits", str),
        E("server_net_address", "serverNetAddress", str),
        E("server_port", "serverPort", int),
        E("timeout_seconds", "timeoutSeconds", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    prefix_digits: str = Field(type=str, required=False, mutable=False)
    server_net_address: str = Field(type=str, required=False, mutable=False)
    server_port: int = Field(type=int, required=False, mutable=False)
    timeout_seconds: int = Field(type=int, required=False, mutable=False)


class ServiceProviderFeatureAccessCodeGetListRequest(OCIRequest):
    """
    Get the list of feature access codes for a service provider or enterprise.

    The response is either a ``ServiceProviderFeatureAccessCodeGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderFeatureAccessCodeGetListRequest20(OCIRequest):
    """
    Get the list of feature access codes for a service provider or enterprise.

    The response is either a ``ServiceProviderFeatureAccessCodeGetListResponse20()`` or an
    ``ErrorResponse()``. In release 20 the "Call Recording" FAC name is changed to "Call
    Recording - Start". Replaced by:
    ``ServiceProviderFeatureAccessCodeGetListRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderFeatureAccessCodeGetListRequest21(OCIRequest):
    """
    Get the list of feature access codes for a service provider or enterprise.

    The response is either a ``ServiceProviderFeatureAccessCodeGetListResponse21()`` or an
    ``ErrorResponse()``. In release 20 the "Call Recording" FAC name is changed to "Call
    Recording - Start".

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderFileRepositoryDeviceUserAddRequest(OCIRequest):
    """
    Add a new service provider file repository user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        file_repository_name: fileRepositoryName
        user_name: userName
        password: password
        allow_put: allowPut
        allow_delete: allowDelete
        allow_get: allowGet
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
        E("password", "password", str, is_required=True),
        E("allow_put", "allowPut", bool, is_required=True),
        E("allow_delete", "allowDelete", bool, is_required=True),
        E("allow_get", "allowGet", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)
    password: str = Field(type=str, required=True, mutable=False)
    allow_put: bool = Field(type=bool, required=True, mutable=False)
    allow_delete: bool = Field(type=bool, required=True, mutable=False)
    allow_get: bool = Field(type=bool, required=True, mutable=False)


class ServiceProviderFileRepositoryDeviceUserDeleteRequest(OCIRequest):
    """
    Delete a service provider file repository user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        file_repository_name: fileRepositoryName
        user_name: userName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderFileRepositoryDeviceUserGetListRequest(OCIRequest):
    """
    Request the list of service provider users for a file repository in the system.

    The response is either a ``ServiceProviderFileRepositoryDeviceUserGetListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        file_repository_name: fileRepositoryName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderFileRepositoryDeviceUserModifyRequest(OCIRequest):
    """
    Modify a service provider file repository user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        file_repository_name: fileRepositoryName
        user_name: userName
        password: password
        allow_put: allowPut
        allow_delete: allowDelete
        allow_get: allowGet
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
        E("password", "password", str),
        E("allow_put", "allowPut", bool),
        E("allow_delete", "allowDelete", bool),
        E("allow_get", "allowGet", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    allow_put: bool = Field(type=bool, required=False, mutable=False)
    allow_delete: bool = Field(type=bool, required=False, mutable=False)
    allow_get: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderGetDefaultRequest(OCIRequest):
    """
    Request the default profile for a service provider or enterprise.

    The response is either a ``ServiceProviderGetDefaultResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class ServiceProviderGetRequest13mp2(OCIRequest):
    """
    Get the profile for a service provider or enterprise.

    The response is either a ``ServiceProviderGetResponse13mp2()`` or an
    ``ErrorResponse()``. Replaced by: ``ServiceProviderGetRequest17sp1()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderGetRequest17sp1(OCIRequest):
    """
    Get the profile for a service provider or enterprise.

    The response is either a ``ServiceProviderGetResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderGroupPagingTargetsCapacityGetRequest(OCIRequest):
    """
    Request the maximum number of target users per paging group configured for a service
    provider.

    The response is either a ``ServiceProviderGroupPagingTargetsCapacityGetResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderGroupPagingTargetsCapacityModifyRequest(OCIRequest):
    """
    Modify the maximum number of target users per paging group configured for a service
    provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        maximum_target_users: maximumTargetUsers
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("maximum_target_users", "maximumTargetUsers", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    maximum_target_users: int = Field(type=int, required=False, mutable=False)


class ServiceProviderIMRNGetListRequest(OCIRequest):
    """
    Returns a list of dns or dn ranges in a service provider IMRN pool.

    The response is either ``ServiceProviderIMRNGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderInCallServiceActivationGetRequest(OCIRequest):
    """
    Request the service provider's DTMF based in-call service activation trigger
    attributes.

    The response is either a ``ServiceProviderInCallServiceActivationGetResponse()`` or an
    ``ErrorResponse()``. Replaced by:
    ``ServiceProviderInCallServiceActivationGetRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderInCallServiceActivationGetRequest17(OCIRequest):
    """
    Request the service provider's DTMF based in-call service activation trigger
    attributes.

    The response is either a ``ServiceProviderInCallServiceActivationGetResponse17()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderInCallServiceActivationModifyRequest(OCIRequest):
    """
    Modifies the service provider's DTMF based in-call service activation trigger
    attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``ServiceProviderInCallServiceActivationModifyRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
        activation_digits: activationDigits
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("activation_digits", "activationDigits", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    activation_digits: str = Field(type=str, required=False, mutable=False)


class ServiceProviderInCallServiceActivationModifyRequest17(OCIRequest):
    """
    Modifies the service provider's DTMF based in-call service activation trigger
    attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        flash_activation_digits: flashActivationDigits
        call_transfer_activation_digits: callTransferActivationDigits
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("flash_activation_digits", "flashActivationDigits", str),
        E("call_transfer_activation_digits", "callTransferActivationDigits", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    flash_activation_digits: str = Field(type=str, required=False, mutable=False)
    call_transfer_activation_digits: str = Field(type=str, required=False, mutable=False)


class ServiceProviderIntegratedIMPGetRequest(OCIRequest):
    """
    Get the Integrated IMP service attributes for the service provider.

    The response is either ``ServiceProviderIntegratedIMPGetResponse()`` or
    ``ErrorResponse()``. Replaced by: ``ServiceProviderIntegratedIMPGetRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderIntegratedIMPGetRequest21(OCIRequest):
    """
    Get the Integrated IMP service attributes for the service provider.

    The response is either ``ServiceProviderIntegratedIMPGetResponse21()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderIntegratedIMPModifyRequest(OCIRequest):
    """
    Modify the Integrated IMP service attributes for the service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        use_system_service_domain: useSystemServiceDomain
        service_domain: serviceDomain
        service_port: servicePort
        use_system_messaging_server: useSystemMessagingServer
        provisioning_url: provisioningUrl
        provisioning_user_id: provisioningUserId
        provisioning_password: provisioningPassword
        bosh_url: boshURL
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("use_system_service_domain", "useSystemServiceDomain", bool),
        E("service_domain", "serviceDomain", str),
        E("service_port", "servicePort", int),
        E("use_system_messaging_server", "useSystemMessagingServer", bool),
        E("provisioning_url", "provisioningUrl", str),
        E("provisioning_user_id", "provisioningUserId", str),
        E("provisioning_password", "provisioningPassword", str),
        E("bosh_url", "boshURL", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_system_service_domain: bool = Field(type=bool, required=False, mutable=False)
    service_domain: str = Field(type=str, required=False, mutable=False)
    service_port: int = Field(type=int, required=False, mutable=False)
    use_system_messaging_server: bool = Field(type=bool, required=False, mutable=False)
    provisioning_url: str = Field(type=str, required=False, mutable=False)
    provisioning_user_id: str = Field(type=str, required=False, mutable=False)
    provisioning_password: str = Field(type=str, required=False, mutable=False)
    bosh_url: str = Field(type=str, required=False, mutable=False)


class ServiceProviderLDAPIntegrationGetDirectoryRequest(OCIRequest):
    """
    Get the LDAP directory attributes for a service provider.

    The response is either a ``ServiceProviderLDAPIntegrationGetDirectoryResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderLDAPIntegrationModifyDirectoryRequest(OCIRequest):
    """
    Modify the LDAP directory attributes for a service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        server_net_address: serverNetAddress
        server_port: serverPort
        search_base: searchBase
        use_ssl: useSSL
        require_authentication: requireAuthentication
        authenticated_dn: authenticatedDN
        authenticated_password: authenticatedPassword
        is_sort_enabled: isSortEnabled
        is_paged_result_enabled: isPagedResultEnabled
        search_filter: searchFilter
        include_search_attribute_in_search_filter: includeSearchAttributeInSearchFilter
        column1_attribute_name: column1AttributeName
        column2_attribute_name: column2AttributeName
        column3_attribute_name: column3AttributeName
        column4_attribute_name: column4AttributeName
        column1_label: column1Label
        column2_label: column2Label
        column3_label: column3Label
        column4_label: column4Label
        search_column: searchColumn
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("server_net_address", "serverNetAddress", str),
        E("server_port", "serverPort", int),
        E("search_base", "searchBase", str),
        E("use_ssl", "useSSL", bool),
        E("require_authentication", "requireAuthentication", bool),
        E("authenticated_dn", "authenticatedDN", str),
        E("authenticated_password", "authenticatedPassword", str),
        E("is_sort_enabled", "isSortEnabled", bool),
        E("is_paged_result_enabled", "isPagedResultEnabled", bool),
        E("search_filter", "searchFilter", str),
        E(
            "include_search_attribute_in_search_filter",
            "includeSearchAttributeInSearchFilter", bool,
        ),
        E("column1_attribute_name", "column1AttributeName", str),
        E("column2_attribute_name", "column2AttributeName", str),
        E("column3_attribute_name", "column3AttributeName", str),
        E("column4_attribute_name", "column4AttributeName", str),
        E("column1_label", "column1Label", str),
        E("column2_label", "column2Label", str),
        E("column3_label", "column3Label", str),
        E("column4_label", "column4Label", str),
        E("search_column", "searchColumn", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    server_net_address: str = Field(type=str, required=False, mutable=False)
    server_port: int = Field(type=int, required=False, mutable=False)
    search_base: str = Field(type=str, required=False, mutable=False)
    use_ssl: bool = Field(type=bool, required=False, mutable=False)
    require_authentication: bool = Field(type=bool, required=False, mutable=False)
    authenticated_dn: str = Field(type=str, required=False, mutable=False)
    authenticated_password: str = Field(type=str, required=False, mutable=False)
    is_sort_enabled: bool = Field(type=bool, required=False, mutable=False)
    is_paged_result_enabled: bool = Field(type=bool, required=False, mutable=False)
    search_filter: str = Field(type=str, required=False, mutable=False)
    include_search_attribute_in_search_filter: bool = Field(
        type=bool, required=False, mutable=False,
    )
    column1_attribute_name: str = Field(type=str, required=False, mutable=False)
    column2_attribute_name: str = Field(type=str, required=False, mutable=False)
    column3_attribute_name: str = Field(type=str, required=False, mutable=False)
    column4_attribute_name: str = Field(type=str, required=False, mutable=False)
    column1_label: str = Field(type=str, required=False, mutable=False)
    column2_label: str = Field(type=str, required=False, mutable=False)
    column3_label: str = Field(type=str, required=False, mutable=False)
    column4_label: str = Field(type=str, required=False, mutable=False)
    search_column: int = Field(type=int, required=False, mutable=False)


class ServiceProviderLanguageAddRequest(OCIRequest):
    """
    Request to add a language for a service provder.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        language: language
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("language", "language", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)


class ServiceProviderLanguageDeleteRequest(OCIRequest):
    """
    Request to delete a language from a service provider supported languages.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        language: language
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("language", "language", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)


class ServiceProviderLanguageGetAvailableListRequest(OCIRequest):
    """
    Request the list of languages that a user or admin in a service provider is allowed to
    use.

    The list will either be the system or service provider languages list, depending on
    the useServiceProviderLanguages flag.

    The response is either a ``ServiceProviderLanguageGetAvailableListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderLanguageGetListRequest(OCIRequest):
    """
    Request the defined languages for a service provider.

    The response is either a ``ServiceProviderLanguageGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderLanguageModifyRequest(OCIRequest):
    """
    Request to modify a language properties for a service provider/enterprise.

    If the becomeDefaultLanguage element is present, the language in this request Becomes
    the default language for the service provider/enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        language: language
        become_default_language: becomeDefaultLanguage
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("become_default_language", "becomeDefaultLanguage", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    become_default_language: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateDeleteRequest(OCIRequest):
    """
    Delete a MWI Delivery to Mobile Endpoint Custom Template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        language: language
        type: type
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("type", "type", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    type: str = Field(type=str, required=True, mutable=False)


class ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateGetRequest(OCIRequest):
    """
    Request a MWI Delivery to Mobile Endpoint Custom Template.

    The response is either a
    ``ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        language: language
        type: type
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("type", "type", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    type: str = Field(type=str, required=True, mutable=False)


class ServiceProviderMWIDeliveryToMobileEndpointGetRequest(OCIRequest):
    """
    Request the service provider level data associated with MWI Delivery to Mobile
    Endpoint service.

    The response is either a ``ServiceProviderMWIDeliveryToMobileEndpointGetResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderMaliciousCallTraceGetRequest(OCIRequest):
    """
    Get the service provider's Malicious Call Trace settings.

    The response is either a ``ServiceProviderMaliciousCallTraceGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderMaliciousCallTraceModifyRequest(OCIRequest):
    """
    Modify the service provider's Malicious Call Trace settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        use_system_play_mct_warning_announcement: useSystemPlayMCTWarningAnnouncement
        play_mct_warning_announcement: playMCTWarningAnnouncement
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "use_system_play_mct_warning_announcement",
            "useSystemPlayMCTWarningAnnouncement", bool,
        ),
        E("play_mct_warning_announcement", "playMCTWarningAnnouncement", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_system_play_mct_warning_announcement: bool = Field(
        type=bool, required=False, mutable=False,
    )
    play_mct_warning_announcement: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderMeetMeConferencingGetRequest(OCIRequest):
    """
    Request the service provider/enterprise level data associated with Meet-Me
    Conferencing functions.

    The response is either a ``ServiceProviderMeetMeConferencingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderNetworkClassOfServiceAssignListRequest(OCIRequest):
    """
    Assign a list of Network Classes of Service to a service provider.

    The Element defaultNetworkClassOfService is required only for the first assignment,
    for subsequent assignments it is optional.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        network_class_of_service: networkClassOfService
        default_network_class_of_service: defaultNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_array=True),
        E("default_network_class_of_service", "defaultNetworkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: "List[str]" = Field(type=list, required=False, mutable=False)
    default_network_class_of_service: str = Field(type=str, required=False, mutable=False)


class ServiceProviderNetworkClassOfServiceAssignListToAllGroupsRequest(OCIRequest):
    """
    Assign a list of Network Classes of Service to all groups with in a service provider.

    If it is the first assigned Network Class of Service in the group, it will be set as
    the default one.  The Network Classes of Service must be currently assigned to the
    service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=True, mutable=False)


class ServiceProviderNetworkClassOfServiceAssignToAllUsersRequest(OCIRequest):
    """
    Assign a Network Classes of Service to all users with in a service provider.

    This will also assign the Network Class of Service to all the groups in the service
    provider if it is not assigned yet.  If it is the first assigned Network Class of
    Service in the group, it will be set as the default one.  However, the Network Classes
    of Service must be currently assigned to the service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=True, mutable=False)


class ServiceProviderNetworkClassOfServiceGetAssignedListRequest(OCIRequest):
    """
    Get a list of Network Classes of Service assigned to a service provider.

    The response is either a
    ``ServiceProviderNetworkClassOfServiceGetAssignedListResponse()`` or an
    ``ErorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderNetworkClassOfServiceModifyDefaultRequest(OCIRequest):
    """
    Modifies the default Network Classes of Service of a Service Provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=True, mutable=False)


class ServiceProviderNetworkClassOfServiceUnassignListRequest(OCIRequest):
    """
    Unassign a list of Network Classes of Service from a service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        network_class_of_service: networkClassOfService
        default_network_class_of_service: defaultNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_array=True),
        E("default_network_class_of_service", "defaultNetworkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: "List[str]" = Field(type=list, required=False, mutable=False)
    default_network_class_of_service: str = Field(type=str, required=False, mutable=False)


class ServiceProviderNumberPortabilityQueryAddListRequest(OCIRequest):
    """
    Add a list of the Service Provider Number Portability Query Digit Patterns.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        digit_pattern: digitPattern
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("digit_pattern", "digitPattern", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    digit_pattern: str = Field(type=str, required=True, mutable=False)


class ServiceProviderNumberPortabilityQueryModifyRequest(OCIRequest):
    """
    Modify the Service Provider Number Portability Query information.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enable_number_portability_query_for_outgoing_calls:
            enableNumberPortabilityQueryForOutgoingCalls
        enable_number_portability_query_for_incoming_calls:
            enableNumberPortabilityQueryForIncomingCalls
        enable_number_portability_query_for_network_calls_only:
            enableNumberPortabilityQueryForNetworkCallsOnly
        delete_digit_pattern: deleteDigitPattern
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "enable_number_portability_query_for_outgoing_calls",
            "enableNumberPortabilityQueryForOutgoingCalls", bool,
        ),
        E(
            "enable_number_portability_query_for_incoming_calls",
            "enableNumberPortabilityQueryForIncomingCalls", bool,
        ),
        E(
            "enable_number_portability_query_for_network_calls_only",
            "enableNumberPortabilityQueryForNetworkCallsOnly", bool,
        ),
        E("delete_digit_pattern", "deleteDigitPattern", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enable_number_portability_query_for_outgoing_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_number_portability_query_for_incoming_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_number_portability_query_for_network_calls_only: bool = Field(
        type=bool, required=False, mutable=False,
    )
    delete_digit_pattern: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderOfficeZoneAssignListRequest(OCIRequest):
    """
    Assign a list of Office Zones to a service provider.

    The Element defaultOfficeZone is required only for the first assignment, for
    subsequent assignments it is optional.  Office Zones can only be assigned if the
    Location-Based Calling Restrictions has been authorized to the service provider
    otherwise the request will fail.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        office_zone_name: officeZoneName
        default_office_zone_name: defaultOfficeZoneName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("office_zone_name", "officeZoneName", str, is_array=True),
        E("default_office_zone_name", "defaultOfficeZoneName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    office_zone_name: "List[str]" = Field(type=list, required=False, mutable=False)
    default_office_zone_name: str = Field(type=str, required=False, mutable=False)


class ServiceProviderOfficeZoneGetAssignedListRequest(OCIRequest):
    """
    Get a list of Office Zones assigned to a service provider.

    The response is either a ``ServiceProviderOfficeZoneGetAssignedListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderOfficeZoneUnassignListRequest(OCIRequest):
    """
    Unassign a list of OfficeZones from a service provider.

    Note: a new default must be provided if unassigning the current default.  Office Zones
    can only be unassigned if the Location-Based Calling Restrictions has been authorized
    to the service provider otherwise the request will fail.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        office_zone_name: officeZoneName
        default_office_zone_name: defaultOfficeZoneName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("office_zone_name", "officeZoneName", str, is_array=True),
        E("default_office_zone_name", "defaultOfficeZoneName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    office_zone_name: "List[str]" = Field(type=list, required=False, mutable=False)
    default_office_zone_name: str = Field(type=str, required=False, mutable=False)


class ServiceProviderPasswordRulesGetRequest13mp2(OCIRequest):
    """
    Requests the service provider's password rules setting applicable to Administrators
    (Group and Department) and Users.

    The response is either ``ServiceProviderPasswordRulesGetResponse13mp2()`` or
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderPasswordRulesGetRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderPasswordRulesGetRequest16(OCIRequest):
    """
    Requests the service provider's password rules setting applicable to Administrators
    (Group and Department) and Users.

    The response is either ``ServiceProviderPasswordRulesGetResponse16()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderPasswordRulesModifyRequest(OCIRequest):
    """
    Request to modify the service provider's password rules settings setting applicable to
    Administrators (Group and Department) and Users.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``ServiceProviderPasswordRulesModifyRequest14sp3()``

    Attributes:
        service_provider_id: serviceProviderId
        rules_apply_to: rulesApplyTo
        allow_web_add_external_authentication_users:
            allowWebAddExternalAuthenticationUsers
        disallow_user_id: disallowUserId
        disallow_old_password: disallowOldPassword
        disallow_reversed_old_password: disallowReversedOldPassword
        restrict_min_digits: restrictMinDigits
        min_digits: minDigits
        restrict_min_upper_case_letters: restrictMinUpperCaseLetters
        min_upper_case_letters: minUpperCaseLetters
        restrict_min_lower_case_letters: restrictMinLowerCaseLetters
        min_lower_case_letters: minLowerCaseLetters
        restrict_min_non_alphanumeric_characters: restrictMinNonAlphanumericCharacters
        min_non_alphanumeric_characters: minNonAlphanumericCharacters
        min_length: minLength
        max_failed_login_attempts: maxFailedLoginAttempts
        password_expires_days: passwordExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
        disallow_rules_modification: disallowRulesModification
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("rules_apply_to", "rulesApplyTo", str),
        E(
            "allow_web_add_external_authentication_users",
            "allowWebAddExternalAuthenticationUsers", bool,
        ),
        E("disallow_user_id", "disallowUserId", bool),
        E("disallow_old_password", "disallowOldPassword", bool),
        E("disallow_reversed_old_password", "disallowReversedOldPassword", bool),
        E("restrict_min_digits", "restrictMinDigits", bool),
        E("min_digits", "minDigits", int),
        E("restrict_min_upper_case_letters", "restrictMinUpperCaseLetters", bool),
        E("min_upper_case_letters", "minUpperCaseLetters", int),
        E("restrict_min_lower_case_letters", "restrictMinLowerCaseLetters", bool),
        E("min_lower_case_letters", "minLowerCaseLetters", int),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters", bool,
        ),
        E("min_non_alphanumeric_characters", "minNonAlphanumericCharacters", int),
        E("min_length", "minLength", int),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("password_expires_days", "passwordExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
        E("disallow_rules_modification", "disallowRulesModification", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    rules_apply_to: str = Field(type=str, required=False, mutable=False)
    allow_web_add_external_authentication_users: bool = Field(
        type=bool, required=False, mutable=False,
    )
    disallow_user_id: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_password: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_password: bool = Field(type=bool, required=False, mutable=False)
    restrict_min_digits: bool = Field(type=bool, required=False, mutable=False)
    min_digits: int = Field(type=int, required=False, mutable=False)
    restrict_min_upper_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_upper_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_lower_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_lower_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_non_alphanumeric_characters: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_non_alphanumeric_characters: int = Field(type=int, required=False, mutable=False)
    min_length: int = Field(type=int, required=False, mutable=False)
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    password_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)
    disallow_rules_modification: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderPasswordRulesModifyRequest14sp3(OCIRequest):
    """
    Request to modify the service provider's password rules settings setting applicable to
    Administrators (Group and Department) and Users.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        rules_apply_to: rulesApplyTo
        allow_web_add_external_authentication_users:
            allowWebAddExternalAuthenticationUsers
        disallow_user_id: disallowUserId
        disallow_old_password: disallowOldPassword
        disallow_reversed_old_password: disallowReversedOldPassword
        restrict_min_digits: restrictMinDigits
        min_digits: minDigits
        restrict_min_upper_case_letters: restrictMinUpperCaseLetters
        min_upper_case_letters: minUpperCaseLetters
        restrict_min_lower_case_letters: restrictMinLowerCaseLetters
        min_lower_case_letters: minLowerCaseLetters
        restrict_min_non_alphanumeric_characters: restrictMinNonAlphanumericCharacters
        min_non_alphanumeric_characters: minNonAlphanumericCharacters
        min_length: minLength
        max_failed_login_attempts: maxFailedLoginAttempts
        password_expires_days: passwordExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
        disallow_previous_passwords: disallowPreviousPasswords
        number_of_previous_passwords: numberOfPreviousPasswords
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("rules_apply_to", "rulesApplyTo", str),
        E(
            "allow_web_add_external_authentication_users",
            "allowWebAddExternalAuthenticationUsers", bool,
        ),
        E("disallow_user_id", "disallowUserId", bool),
        E("disallow_old_password", "disallowOldPassword", bool),
        E("disallow_reversed_old_password", "disallowReversedOldPassword", bool),
        E("restrict_min_digits", "restrictMinDigits", bool),
        E("min_digits", "minDigits", int),
        E("restrict_min_upper_case_letters", "restrictMinUpperCaseLetters", bool),
        E("min_upper_case_letters", "minUpperCaseLetters", int),
        E("restrict_min_lower_case_letters", "restrictMinLowerCaseLetters", bool),
        E("min_lower_case_letters", "minLowerCaseLetters", int),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters", bool,
        ),
        E("min_non_alphanumeric_characters", "minNonAlphanumericCharacters", int),
        E("min_length", "minLength", int),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("password_expires_days", "passwordExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
        E("disallow_previous_passwords", "disallowPreviousPasswords", bool),
        E("number_of_previous_passwords", "numberOfPreviousPasswords", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    rules_apply_to: str = Field(type=str, required=False, mutable=False)
    allow_web_add_external_authentication_users: bool = Field(
        type=bool, required=False, mutable=False,
    )
    disallow_user_id: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_password: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_password: bool = Field(type=bool, required=False, mutable=False)
    restrict_min_digits: bool = Field(type=bool, required=False, mutable=False)
    min_digits: int = Field(type=int, required=False, mutable=False)
    restrict_min_upper_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_upper_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_lower_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_lower_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_non_alphanumeric_characters: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_non_alphanumeric_characters: int = Field(type=int, required=False, mutable=False)
    min_length: int = Field(type=int, required=False, mutable=False)
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    password_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)
    disallow_previous_passwords: bool = Field(type=bool, required=False, mutable=False)
    number_of_previous_passwords: int = Field(type=int, required=False, mutable=False)


class ServiceProviderPortalPasscodeRulesGetRequest(OCIRequest):
    """
    Requests the service provider's passcode rules setting.

    The response is either ``ServiceProviderPortalPasscodeRulesGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderPortalPasscodeRulesGetRequest19(OCIRequest):
    """
    Requests the service provider's passcode rules setting.

    The response is either ``ServiceProviderPortalPasscodeRulesGetResponse19()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderPortalPasscodeRulesModifyRequest(OCIRequest):
    """
    Request to modify the service provider's passcode rules setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: numberOfRepeatedDigits
    disallowRepeatedPatterns disallowContiguousSequences numberOfAscendingDigits
    numberOfDescendingDigits numberOfPreviousPasscodes

    Attributes:
        service_provider_id: serviceProviderId
        disallow_repeated_digits: disallowRepeatedDigits
        number_of_repeated_digits: numberOfRepeatedDigits
        disallow_repeated_patterns: disallowRepeatedPatterns
        disallow_contiguous_sequences: disallowContiguousSequences
        number_of_ascending_digits: numberOfAscendingDigits
        number_of_descending_digits: numberOfDescendingDigits
        disallow_user_number: disallowUserNumber
        disallow_reversed_user_number: disallowReversedUserNumber
        disallow_old_passcode: disallowOldPasscode
        number_of_previous_passcodes: numberOfPreviousPasscodes
        disallow_reversed_old_passcode: disallowReversedOldPasscode
        min_code_length: minCodeLength
        max_code_length: maxCodeLength
        disable_login_after_max_failed_login_attempts:
            disableLoginAfterMaxFailedLoginAttempts
        max_failed_login_attempts: maxFailedLoginAttempts
        expire_password: expirePassword
        passcode_expires_days: passcodeExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("disallow_repeated_digits", "disallowRepeatedDigits", bool),
        E("number_of_repeated_digits", "numberOfRepeatedDigits", int),
        E("disallow_repeated_patterns", "disallowRepeatedPatterns", bool),
        E("disallow_contiguous_sequences", "disallowContiguousSequences", bool),
        E("number_of_ascending_digits", "numberOfAscendingDigits", int),
        E("number_of_descending_digits", "numberOfDescendingDigits", int),
        E("disallow_user_number", "disallowUserNumber", bool),
        E("disallow_reversed_user_number", "disallowReversedUserNumber", bool),
        E("disallow_old_passcode", "disallowOldPasscode", bool),
        E("number_of_previous_passcodes", "numberOfPreviousPasscodes", int),
        E("disallow_reversed_old_passcode", "disallowReversedOldPasscode", bool),
        E("min_code_length", "minCodeLength", int),
        E("max_code_length", "maxCodeLength", int),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts", bool,
        ),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("expire_password", "expirePassword", bool),
        E("passcode_expires_days", "passcodeExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    disallow_repeated_digits: bool = Field(type=bool, required=False, mutable=False)
    number_of_repeated_digits: int = Field(type=int, required=False, mutable=False)
    disallow_repeated_patterns: bool = Field(type=bool, required=False, mutable=False)
    disallow_contiguous_sequences: bool = Field(type=bool, required=False, mutable=False)
    number_of_ascending_digits: int = Field(type=int, required=False, mutable=False)
    number_of_descending_digits: int = Field(type=int, required=False, mutable=False)
    disallow_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    number_of_previous_passcodes: int = Field(type=int, required=False, mutable=False)
    disallow_reversed_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    min_code_length: int = Field(type=int, required=False, mutable=False)
    max_code_length: int = Field(type=int, required=False, mutable=False)
    disable_login_after_max_failed_login_attempts: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    expire_password: bool = Field(type=bool, required=False, mutable=False)
    passcode_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)


class ServiceProviderPreferredCarrierAddRequest(OCIRequest):
    """
    Add the country code preferred carriers for a service provider or enterprise.

    For each combination of service provider and country code, you can assign an intra-
    lata, inter-lata, and international carrier.  Each of the three types of carriers is
    optional.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Note: At the
    system level, more than one carrier may be assigned to each country code.  At the
    service provider level, you must choose from the carriers assigned at the system
    level.

    Attributes:
        service_provider_id: serviceProviderId
        country_code: countryCode
        intra_lata_carrier: intraLataCarrier
        inter_lata_carrier: interLataCarrier
        international_carrier: internationalCarrier
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("country_code", "countryCode", str, is_required=True),
        E("intra_lata_carrier", "intraLataCarrier", str),
        E("inter_lata_carrier", "interLataCarrier", str),
        E("international_carrier", "internationalCarrier", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)
    intra_lata_carrier: str = Field(type=str, required=False, mutable=False)
    inter_lata_carrier: str = Field(type=str, required=False, mutable=False)
    international_carrier: str = Field(type=str, required=False, mutable=False)


class ServiceProviderPreferredCarrierDeleteRequest(OCIRequest):
    """
    Delete the country code preferred carriers for a service provider or enterprise.

    Note that this is different from unassigning all 3 types of carriers with the
    ``ServiceProviderPreferredCarrierModifyRequest()``.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. An
    ``ErrorResponse()`` will be returned if the country code preferred carriers were never
    added or were already deleted.

    Attributes:
        service_provider_id: serviceProviderId
        country_code: countryCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("country_code", "countryCode", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)


class ServiceProviderPreferredCarrierGetAvailableCountryCodeListRequest(OCIRequest):
    """
    Requests the default country code and the list of unused country codes for a service
    provider / enterprise.

    The response is either a
    ``ServiceProviderPreferredCarrierGetAvailableCountryCodeListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderPreferredCarrierGetCarrierListRequest(OCIRequest):
    """
    Requests the lists of carriers for a specified country code for a service provider /
    enterprise.

    The response is either a ``ServiceProviderPreferredCarrierGetCarrierListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        country_code: countryCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("country_code", "countryCode", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)


class ServiceProviderPreferredCarrierGetListRequest(OCIRequest):
    """
    Requests a table of all the carriers defined in a specified service provider or
    enterprise.

    The response is either a ``ServiceProviderPreferredCarrierGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderPreferredCarrierGetRequest(OCIRequest):
    """
    Requests the currently configured carriers for a specified country code for a service
    provider / enterprise.

    The response is either a ``ServiceProviderPreferredCarrierGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        country_code: countryCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("country_code", "countryCode", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)


class ServiceProviderPreferredCarrierModifyRequest(OCIRequest):
    """
    Modify the country code preferred carriers for a service provider or enterprise.

    For each combination of service provider and country code, you can assign an intra-
    lata, inter-lata, and international carrier.  Each of the 3 types of carriers is
    optional.  If an optional carrier is not specified, the assignment will not change.
    To clear a preferred carrier, set the value to an empty string.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Note: At the
    system level, more than one carrier may be assigned to each country code.  At the
    service provider level, you must choose from the carriers assigned at the system
    level.

    Attributes:
        service_provider_id: serviceProviderId
        country_code: countryCode
        intra_lata_carrier: intraLataCarrier
        inter_lata_carrier: interLataCarrier
        international_carrier: internationalCarrier
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("country_code", "countryCode", str, is_required=True),
        E("intra_lata_carrier", "intraLataCarrier", str),
        E("inter_lata_carrier", "interLataCarrier", str),
        E("international_carrier", "internationalCarrier", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)
    intra_lata_carrier: str = Field(type=str, required=False, mutable=False)
    inter_lata_carrier: str = Field(type=str, required=False, mutable=False)
    international_carrier: str = Field(type=str, required=False, mutable=False)


class ServiceProviderRouteListEnterpriseTrunkNumberRangeActivateListRequest(OCIRequest):
    """
    Activate number ranges in a service provider.

    It is not an error to activate an already activated number range.  The command fails
    if executed when system level enterprise trunk number range activation is disabled.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        number_range_start: numberRangeStart
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("number_range_start", "numberRangeStart", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    number_range_start: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderRouteListEnterpriseTrunkNumberRangeDeactivateListRequest(OCIRequest):
    """
    Deactivate number ranges in a service provider.

    It is not an error to deactivate an already deactivated number range.  The command
    fails if executed when system level enterprise trunk number range activation is
    disabled.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        number_range_start: numberRangeStart
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("number_range_start", "numberRangeStart", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    number_range_start: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderRouteListEnterpriseTrunkNumberRangeDeleteListRequest(OCIRequest):
    """
    Delete number ranges from a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        number_range_start: numberRangeStart
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("number_range_start", "numberRangeStart", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    number_range_start: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderRouteListEnterpriseTrunkNumberRangeGetAvailableListRequest(OCIRequest):
    """
    Request a list of available number ranges not yet assigned to any group.

    The response is either
    ``ServiceProviderRouteListEnterpriseTrunkNumberRangeGetAvailableListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderRouteListEnterpriseTrunkNumberRangeGetSummaryListRequest(OCIRequest):
    """
    Request a summary table of all enterprise trunk number ranges in the service provider.

    The response is either
    ``ServiceProviderRouteListEnterpriseTrunkNumberRangeGetSummaryListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderRoutePointExternalSystemAssignListRequest(OCIRequest):
    """
    Assign a list of route point external systems to a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        route_point_external_system: routePointExternalSystem
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("route_point_external_system", "routePointExternalSystem", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    route_point_external_system: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderRoutePointExternalSystemGetAssignedListRequest(OCIRequest):
    """
    Requests the list of all Route Point External Systems assigned to a service provider.

    The response is either
    ``ServiceProviderRoutePointExternalSystemGetAssignedListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderRoutePointExternalSystemUnassignListRequest(OCIRequest):
    """
    Unassign a list of route point external systems from a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        route_point_external_system: routePointExternalSystem
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("route_point_external_system", "routePointExternalSystem", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    route_point_external_system: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderRoutingProfileGetRequest(OCIRequest):
    """
    Request the routing profile for the service provider/enterprise.

    The response is either a ``ServiceProviderRoutingProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderRoutingProfileModifyRequest(OCIRequest):
    """
    Requests to modify the routing profile for a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        routing_profile: routingProfile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("routing_profile", "routingProfile", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    routing_profile: str = Field(type=str, required=False, mutable=False)


class ServiceProviderSIPAuthenticationPasswordRulesGetRequest(OCIRequest):
    """
    Request to get the service provider level SIP authentication password rule settings.

    The response is either a
    ``ServiceProviderSIPAuthenticationPasswordRulesGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderSIPAuthenticationPasswordRulesModifyRequest(OCIRequest):
    """
    Request to modify the service provider level SIP authentication password rule
    settings.

    The useServiceProviderSettings element can only be modified by a system administrator
    or a provisioning administrator.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        use_service_provider_settings: useServiceProviderSettings
        disallow_authentication_name: disallowAuthenticationName
        disallow_old_password: disallowOldPassword
        disallow_reversed_old_password: disallowReversedOldPassword
        restrict_min_digits: restrictMinDigits
        min_digits: minDigits
        restrict_min_upper_case_letters: restrictMinUpperCaseLetters
        min_upper_case_letters: minUpperCaseLetters
        restrict_min_lower_case_letters: restrictMinLowerCaseLetters
        min_lower_case_letters: minLowerCaseLetters
        restrict_min_non_alphanumeric_characters: restrictMinNonAlphanumericCharacters
        min_non_alphanumeric_characters: minNonAlphanumericCharacters
        min_length: minLength
        send_permanent_lockout_notification: sendPermanentLockoutNotification
        permanent_lockout_notify_email_address: permanentLockoutNotifyEmailAddress
        endpoint_authentication_lockout_type: endpointAuthenticationLockoutType
        endpoint_temporary_lockout_threshold: endpointTemporaryLockoutThreshold
        endpoint_wait_algorithm: endpointWaitAlgorithm
        endpoint_lockout_fixed_minutes: endpointLockoutFixedMinutes
        endpoint_permanent_lockout_threshold: endpointPermanentLockoutThreshold
        trunk_group_authentication_lockout_type: trunkGroupAuthenticationLockoutType
        trunk_group_temporary_lockout_threshold: trunkGroupTemporaryLockoutThreshold
        trunk_group_wait_algorithm: trunkGroupWaitAlgorithm
        trunk_group_lockout_fixed_minutes: trunkGroupLockoutFixedMinutes
        trunk_group_permanent_lockout_threshold: trunkGroupPermanentLockoutThreshold
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("use_service_provider_settings", "useServiceProviderSettings", bool),
        E("disallow_authentication_name", "disallowAuthenticationName", bool),
        E("disallow_old_password", "disallowOldPassword", bool),
        E("disallow_reversed_old_password", "disallowReversedOldPassword", bool),
        E("restrict_min_digits", "restrictMinDigits", bool),
        E("min_digits", "minDigits", int),
        E("restrict_min_upper_case_letters", "restrictMinUpperCaseLetters", bool),
        E("min_upper_case_letters", "minUpperCaseLetters", int),
        E("restrict_min_lower_case_letters", "restrictMinLowerCaseLetters", bool),
        E("min_lower_case_letters", "minLowerCaseLetters", int),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters", bool,
        ),
        E("min_non_alphanumeric_characters", "minNonAlphanumericCharacters", int),
        E("min_length", "minLength", int),
        E("send_permanent_lockout_notification", "sendPermanentLockoutNotification", bool),
        E(
            "permanent_lockout_notify_email_address",
            "permanentLockoutNotifyEmailAddress", str,
        ),
        E("endpoint_authentication_lockout_type", "endpointAuthenticationLockoutType", str),
        E("endpoint_temporary_lockout_threshold", "endpointTemporaryLockoutThreshold", int),
        E("endpoint_wait_algorithm", "endpointWaitAlgorithm", str),
        E("endpoint_lockout_fixed_minutes", "endpointLockoutFixedMinutes", str),
        E("endpoint_permanent_lockout_threshold", "endpointPermanentLockoutThreshold", int),
        E(
            "trunk_group_authentication_lockout_type",
            "trunkGroupAuthenticationLockoutType", str,
        ),
        E(
            "trunk_group_temporary_lockout_threshold",
            "trunkGroupTemporaryLockoutThreshold", int,
        ),
        E("trunk_group_wait_algorithm", "trunkGroupWaitAlgorithm", str),
        E("trunk_group_lockout_fixed_minutes", "trunkGroupLockoutFixedMinutes", str),
        E(
            "trunk_group_permanent_lockout_threshold",
            "trunkGroupPermanentLockoutThreshold", int,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_service_provider_settings: bool = Field(type=bool, required=False, mutable=False)
    disallow_authentication_name: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_password: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_password: bool = Field(type=bool, required=False, mutable=False)
    restrict_min_digits: bool = Field(type=bool, required=False, mutable=False)
    min_digits: int = Field(type=int, required=False, mutable=False)
    restrict_min_upper_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_upper_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_lower_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_lower_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_non_alphanumeric_characters: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_non_alphanumeric_characters: int = Field(type=int, required=False, mutable=False)
    min_length: int = Field(type=int, required=False, mutable=False)
    send_permanent_lockout_notification: bool = Field(
        type=bool, required=False, mutable=False,
    )
    permanent_lockout_notify_email_address: str = Field(
        type=str, required=False, mutable=False,
    )
    endpoint_authentication_lockout_type: str = Field(type=str, required=False, mutable=False)
    endpoint_temporary_lockout_threshold: int = Field(type=int, required=False, mutable=False)
    endpoint_wait_algorithm: str = Field(type=str, required=False, mutable=False)
    endpoint_lockout_fixed_minutes: str = Field(type=str, required=False, mutable=False)
    endpoint_permanent_lockout_threshold: int = Field(type=int, required=False, mutable=False)
    trunk_group_authentication_lockout_type: str = Field(
        type=str, required=False, mutable=False,
    )
    trunk_group_temporary_lockout_threshold: int = Field(
        type=int, required=False, mutable=False,
    )
    trunk_group_wait_algorithm: str = Field(type=str, required=False, mutable=False)
    trunk_group_lockout_fixed_minutes: str = Field(type=str, required=False, mutable=False)
    trunk_group_permanent_lockout_threshold: int = Field(
        type=int, required=False, mutable=False,
    )


class ServiceProviderScheduleAddRequest(OCIRequest):
    """
    Add a service provider schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        schedule_name: scheduleName
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("schedule_name", "scheduleName", str, is_required=True),
        E("schedule_type", "scheduleType", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    schedule_name: str = Field(type=str, required=True, mutable=False)
    schedule_type: str = Field(type=str, required=True, mutable=False)


class ServiceProviderScheduleGetListRequest(OCIRequest):
    """
    Get the list of a service provider schedules.

    The list can be filtered by schedule type.

    The response is either a ``ServiceProviderScheduleGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("schedule_type", "scheduleType", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    schedule_type: str = Field(type=str, required=False, mutable=False)


class ServiceProviderServiceGetAuthorizationListRequest(OCIRequest):
    """
    Requests the service provider's service authorization status.

    The response is either ``ServiceProviderServiceGetAuthorizationListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServiceGetUserAssignableListRequest(OCIRequest):
    """
    Requests the list of all user services assignable to users in the specified service
    provider.

    The response is either ``ServiceProviderServiceGetUserAssignableListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackAddServiceListRequest(OCIRequest):
    """
    Request to add services to a service pack if the pack has not been authorized to a
    group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        service_pack_name: servicePackName
        service_name: serviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("service_pack_name", "servicePackName", str, is_required=True),
        E("service_name", "serviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    service_pack_name: str = Field(type=str, required=True, mutable=False)
    service_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackDeleteRequest(OCIRequest):
    """
    Request to delete a service pack from a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("service_pack_name", "servicePackName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    service_pack_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackGetDetailListRequest(OCIRequest):
    """
    Request to get a service pack details.

    The response is either ``ServiceProviderServicePackGetDetailListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("service_pack_name", "servicePackName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    service_pack_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackGetListRequest(OCIRequest):
    """
    Request to get a list of defined service packs for a service provider.

    The response is either ``ServiceProviderServicePackGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackGetServiceUsageListRequest(OCIRequest):
    """
    Request to get the list of service packs containing a specified service.

    The response is either ``ServiceProviderServicePackGetServiceUsageListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        service_name: serviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("service_name", "serviceName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    service_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackGetUtilizationListRequest(OCIRequest):
    """
    Request to get the service pack utilization for a service provider.

    For each service pack, a table of groups utilizing the pack is returned.

    The response is either ``ServiceProviderServicePackGetUtilizationListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackMigrationTaskAddRequest(OCIRequest):
    """
    Create a service pack migration task.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``ServiceProviderServicePackMigrationTaskAddRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
        start_timestamp: startTimestamp
        max_duration_hours: maxDurationHours
        send_report_email: sendReportEmail
        report_delivery_email_address: reportDeliveryEmailAddress
        abort_on_error: abortOnError
        abort_error_threshold: abortErrorThreshold
        report_all_users: reportAllUsers
        automatically_increment_service_quantity: automaticallyIncrementServiceQuantity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
        E("start_timestamp", "startTimestamp", str, is_required=True),
        E("max_duration_hours", "maxDurationHours", int, is_required=True),
        E("send_report_email", "sendReportEmail", bool, is_required=True),
        E("report_delivery_email_address", "reportDeliveryEmailAddress", str),
        E("abort_on_error", "abortOnError", bool, is_required=True),
        E("abort_error_threshold", "abortErrorThreshold", int),
        E("report_all_users", "reportAllUsers", bool, is_required=True),
        E(
            "automatically_increment_service_quantity",
            "automaticallyIncrementServiceQuantity", bool, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)
    start_timestamp: str = Field(type=str, required=True, mutable=False)
    max_duration_hours: int = Field(type=int, required=True, mutable=False)
    send_report_email: bool = Field(type=bool, required=True, mutable=False)
    report_delivery_email_address: str = Field(type=str, required=False, mutable=False)
    abort_on_error: bool = Field(type=bool, required=True, mutable=False)
    abort_error_threshold: int = Field(type=int, required=False, mutable=False)
    report_all_users: bool = Field(type=bool, required=True, mutable=False)
    automatically_increment_service_quantity: bool = Field(
        type=bool, required=True, mutable=False,
    )


class ServiceProviderServicePackMigrationTaskAddRequest21(OCIRequest):
    """
    Create a service pack migration task.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
        start_timestamp: startTimestamp
        expire_after_num_hours: expireAfterNumHours
        max_duration_hours: maxDurationHours
        send_report_email: sendReportEmail
        report_delivery_email_address: reportDeliveryEmailAddress
        abort_on_error: abortOnError
        abort_error_threshold: abortErrorThreshold
        report_all_users: reportAllUsers
        automatically_increment_service_quantity: automaticallyIncrementServiceQuantity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
        E("start_timestamp", "startTimestamp", str, is_required=True),
        E("expire_after_num_hours", "expireAfterNumHours", int, is_required=True),
        E("max_duration_hours", "maxDurationHours", int, is_required=True),
        E("send_report_email", "sendReportEmail", bool, is_required=True),
        E("report_delivery_email_address", "reportDeliveryEmailAddress", str),
        E("abort_on_error", "abortOnError", bool, is_required=True),
        E("abort_error_threshold", "abortErrorThreshold", int),
        E("report_all_users", "reportAllUsers", bool, is_required=True),
        E(
            "automatically_increment_service_quantity",
            "automaticallyIncrementServiceQuantity", bool, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)
    start_timestamp: str = Field(type=str, required=True, mutable=False)
    expire_after_num_hours: int = Field(type=int, required=True, mutable=False)
    max_duration_hours: int = Field(type=int, required=True, mutable=False)
    send_report_email: bool = Field(type=bool, required=True, mutable=False)
    report_delivery_email_address: str = Field(type=str, required=False, mutable=False)
    abort_on_error: bool = Field(type=bool, required=True, mutable=False)
    abort_error_threshold: int = Field(type=int, required=False, mutable=False)
    report_all_users: bool = Field(type=bool, required=True, mutable=False)
    automatically_increment_service_quantity: bool = Field(
        type=bool, required=True, mutable=False,
    )


class ServiceProviderServicePackMigrationTaskCopyRequest(OCIRequest):
    """
    Makes a copy of one or more existing service pack migration tasks.

    A copied task can be edited with other commands and scheduled for future execution.
    The name of the new task is chosen automatically.  The name will be "Copy (number) of
    taskName".

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackMigrationTaskDeleteRequest(OCIRequest):
    """
    Deletes a service pack migration task.

    It is not possible to delete a task while it is currently executing.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackMigrationTaskGetListRequest(OCIRequest):
    """
    Requests a list of all service pack migration task for a service provider.

    The response is either ``ServiceProviderServicePackMigrationTaskGetListResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderServicePackMigrationTaskGetListRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackMigrationTaskGetListRequest21(OCIRequest):
    """
    Requests a list of all service pack migration tasks for a service provider.

    The response is either ``ServiceProviderServicePackMigrationTaskGetListResponse21()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackMigrationTaskGetRequest(OCIRequest):
    """
    Requests the details of a specified service pack migration task.

    The response is either ``ServiceProviderServicePackMigrationTaskGetResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderServicePackMigrationTaskGetRequest14sp4()``

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackMigrationTaskGetRequest14sp4(OCIRequest):
    """
    Requests the details of a specified service pack migration task.

    The response is either ``ServiceProviderServicePackMigrationTaskGetResponse14sp4()``
    or ``ErrorResponse()``.

    Replaced By: ``ServiceProviderServicePackMigrationTaskGetRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackMigrationTaskGetRequest21(OCIRequest):
    """
    Requests the details of a specified service pack migration task.

    The response is either ``ServiceProviderServicePackMigrationTaskGetResponse21()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePackMigrationTaskModifyGroupListRequest(OCIRequest):
    """
    Replace the list of groups to be migrated for a specified service pack migration task.

    Modification is only allowed prior to task execution.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
        migrate_all_groups: migrateAllGroups
        group_id_list: groupIdList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
        E("migrate_all_groups", "migrateAllGroups", bool),
        E("group_id_list", "groupIdList", str, is_complex=True),  # unknown
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)
    migrate_all_groups: bool = Field(type=bool, required=False, mutable=False)
    group_id_list: str = Field(type=str, required=False, mutable=False)


class ServiceProviderServicePackMigrationTaskModifyRequest(OCIRequest):
    """
    Modify the properties of a specified service pack migration task.

    Modification is only allowed prior to task execution.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
        new_task_name: newTaskName
        start_timestamp: startTimestamp
        expire_after_num_hours: expireAfterNumHours
        max_duration_hours: maxDurationHours
        send_report_email: sendReportEmail
        report_delivery_email_address: reportDeliveryEmailAddress
        abort_on_error: abortOnError
        abort_error_threshold: abortErrorThreshold
        report_all_users: reportAllUsers
        automatically_increment_service_quantity: automaticallyIncrementServiceQuantity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
        E("new_task_name", "newTaskName", str),
        E("start_timestamp", "startTimestamp", str),
        E("expire_after_num_hours", "expireAfterNumHours", int),
        E("max_duration_hours", "maxDurationHours", int),
        E("send_report_email", "sendReportEmail", bool),
        E("report_delivery_email_address", "reportDeliveryEmailAddress", str),
        E("abort_on_error", "abortOnError", bool),
        E("abort_error_threshold", "abortErrorThreshold", int),
        E("report_all_users", "reportAllUsers", bool),
        E(
            "automatically_increment_service_quantity",
            "automaticallyIncrementServiceQuantity", bool,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)
    new_task_name: str = Field(type=str, required=False, mutable=False)
    start_timestamp: str = Field(type=str, required=False, mutable=False)
    expire_after_num_hours: int = Field(type=int, required=False, mutable=False)
    max_duration_hours: int = Field(type=int, required=False, mutable=False)
    send_report_email: bool = Field(type=bool, required=False, mutable=False)
    report_delivery_email_address: str = Field(type=str, required=False, mutable=False)
    abort_on_error: bool = Field(type=bool, required=False, mutable=False)
    abort_error_threshold: int = Field(type=int, required=False, mutable=False)
    report_all_users: bool = Field(type=bool, required=False, mutable=False)
    automatically_increment_service_quantity: bool = Field(
        type=bool, required=False, mutable=False,
    )


class ServiceProviderServicePackMigrationTaskTerminateRequest(OCIRequest):
    """
    Terminates a service pack migration task that is currently executing.

    Modification is only allowed prior to task execution.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderServicePhoneNumberLookupRequest(OCIRequest):
    """
    Lookup if the given number is defined in the specified service in the service
    provider.

    The response is ``ServiceProviderServicePhoneNumberLookupResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        service_type: serviceType
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("service_type", "serviceType", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    service_type: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class ServiceProviderSessionAdmissionControlGetRequest(OCIRequest):
    """
    Get the session admission control capacity for the service provider.

    The response is either a ``ServiceProviderSessionAdmissionControlGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderSessionAdmissionControlModifyRequest(OCIRequest):
    """
    Request to modify session admission control capacity for the service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        restrict_aggregate_sessions: restrictAggregateSessions
        max_sessions: maxSessions
        max_user_originating_sessions: maxUserOriginatingSessions
        max_user_terminating_sessions: maxUserTerminatingSessions
        count_intra_service_provider_sessions: countIntraServiceProviderSessions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("restrict_aggregate_sessions", "restrictAggregateSessions", bool),
        E("max_sessions", "maxSessions", int),
        E("max_user_originating_sessions", "maxUserOriginatingSessions", int),
        E("max_user_terminating_sessions", "maxUserTerminatingSessions", int),
        E("count_intra_service_provider_sessions", "countIntraServiceProviderSessions", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    restrict_aggregate_sessions: bool = Field(type=bool, required=False, mutable=False)
    max_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    count_intra_service_provider_sessions: bool = Field(
        type=bool, required=False, mutable=False,
    )


class ServiceProviderSessionAdmissionControlWhiteListGetRequest(OCIRequest):
    """
    Request to get the Service Provider Session Admission White List information.

    The response is either a
    ``ServiceProviderSessionAdmissionControlWhiteListGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderSessionAdmissionControlWhiteListModifyRequest(OCIRequest):
    """
    Modify the Service Provider Session Admission Control White List information.

    The number of digit pattern entries is limited to 100.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        add_match_digit_pattern: addMatchDigitPattern
        delete_match_digit_pattern: deleteMatchDigitPattern
        enable_white_list: enableWhiteList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("add_match_digit_pattern", "addMatchDigitPattern", str),
        E("delete_match_digit_pattern", "deleteMatchDigitPattern", str),
        E("enable_white_list", "enableWhiteList", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    add_match_digit_pattern: str = Field(type=str, required=False, mutable=False)
    delete_match_digit_pattern: str = Field(type=str, required=False, mutable=False)
    enable_white_list: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderTrunkGroupGetRequest(OCIRequest):
    """
    Get the maximum permissible active Trunk Group calls for the service provider.

    The response is either a ``ServiceProviderTrunkGroupGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderTrunkGroupGetRequest14sp1(OCIRequest):
    """
    Get the maximum and bursting maximum permissible active Trunk Group calls for the
    service provider.

    The response is either a ``ServiceProviderTrunkGroupGetResponse14sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderVoiceMessagingGroupGetPasscodeRulesRequest(OCIRequest):
    """
    Requests the service provider's voice portal passcode rules setting.

    The response is either
    ``ServiceProviderVoiceMessagingGroupGetPasscodeRulesResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderPortalPasscodeRulesGetRequest()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderVoiceMessagingGroupGetRequest(OCIRequest):
    """
    Requests the service provider's or enterprise's voice messaging settings.

    The response is either ``ServiceProviderVoiceMessagingGroupGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingRequest(OCIRequest):
    """
    Get the service provider's voice portal branding settings.

    The response is either a
    ``ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingRequest16(OCIRequest):
    """
    Get the service provider's voice portal branding settings.

    The response is either a
    ``ServiceProviderVoiceMessagingGroupGetVoicePortalBrandingResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderVoiceMessagingGroupGetVoicePortalRequest(OCIRequest):
    """
    Requests the service provider's or enterprise's voice portal settings.

    The response is either ``ServiceProviderVoiceMessagingGroupGetVoicePortalResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderVoiceMessagingGroupModifyPasscodeRulesRequest(OCIRequest):
    """
    Request to modify the service provider's voice portal passcode rules setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``ServiceProviderPortalPasscodeRulesModifyRequest()``

    Attributes:
        service_provider_id: serviceProviderId
        disallow_repeated_digits: disallowRepeatedDigits
        disallow_user_number: disallowUserNumber
        disallow_reversed_user_number: disallowReversedUserNumber
        disallow_old_passcode: disallowOldPasscode
        disallow_reversed_old_passcode: disallowReversedOldPasscode
        min_code_length: minCodeLength
        max_code_length: maxCodeLength
        disable_login_after_max_failed_login_attempts:
            disableLoginAfterMaxFailedLoginAttempts
        max_failed_login_attempts: maxFailedLoginAttempts
        expire_password: expirePassword
        passcode_expires_days: passcodeExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("disallow_repeated_digits", "disallowRepeatedDigits", bool),
        E("disallow_user_number", "disallowUserNumber", bool),
        E("disallow_reversed_user_number", "disallowReversedUserNumber", bool),
        E("disallow_old_passcode", "disallowOldPasscode", bool),
        E("disallow_reversed_old_passcode", "disallowReversedOldPasscode", bool),
        E("min_code_length", "minCodeLength", int),
        E("max_code_length", "maxCodeLength", int),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts", bool,
        ),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("expire_password", "expirePassword", bool),
        E("passcode_expires_days", "passcodeExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    disallow_repeated_digits: bool = Field(type=bool, required=False, mutable=False)
    disallow_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    min_code_length: int = Field(type=int, required=False, mutable=False)
    max_code_length: int = Field(type=int, required=False, mutable=False)
    disable_login_after_max_failed_login_attempts: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    expire_password: bool = Field(type=bool, required=False, mutable=False)
    passcode_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)


class ServiceProviderVoiceMessagingGroupModifyRequest(OCIRequest):
    """
    Request to modify a service provider's or enterprise's voice messaging settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        delivery_from_address: deliveryFromAddress
        notification_from_address: notificationFromAddress
        voice_portal_lockout_from_address: voicePortalLockoutFromAddress
        use_system_default_delivery_from_address: useSystemDefaultDeliveryFromAddress
        use_system_default_notification_from_address:
            useSystemDefaultNotificationFromAddress
        use_system_default_voice_portal_lockout_from_address:
            useSystemDefaultVoicePortalLockoutFromAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("delivery_from_address", "deliveryFromAddress", str),
        E("notification_from_address", "notificationFromAddress", str),
        E("voice_portal_lockout_from_address", "voicePortalLockoutFromAddress", str),
        E(
            "use_system_default_delivery_from_address",
            "useSystemDefaultDeliveryFromAddress", bool,
        ),
        E(
            "use_system_default_notification_from_address",
            "useSystemDefaultNotificationFromAddress", bool,
        ),
        E(
            "use_system_default_voice_portal_lockout_from_address",
            "useSystemDefaultVoicePortalLockoutFromAddress", bool,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    delivery_from_address: str = Field(type=str, required=False, mutable=False)
    notification_from_address: str = Field(type=str, required=False, mutable=False)
    voice_portal_lockout_from_address: str = Field(type=str, required=False, mutable=False)
    use_system_default_delivery_from_address: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_system_default_notification_from_address: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_system_default_voice_portal_lockout_from_address: bool = Field(
        type=bool, required=False, mutable=False,
    )


class ServiceProviderVoiceMessagingGroupModifyVoicePortalRequest(OCIRequest):
    """
    Request to change the service provider's or enterprise's voice portal settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        voice_portal_scope: voicePortalScope
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("voice_portal_scope", "voicePortalScope", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    voice_portal_scope: str = Field(type=str, required=False, mutable=False)


class ServiceProviderZoneCallingRestrictionsGetRequest(OCIRequest):
    """
    Gets the Service Provider/Enterprise level Zone Calling Restrictions Policies.

    The response is ``ServiceProviderZoneCallingRestrictionsGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)


class ServiceProviderZoneCallingRestrictionsModifyRequest(OCIRequest):
    """
    Modifies the Service Provider/Enterprise level Zone Calling Restrictions Policies.

    The response is ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enable_zone_calling_restrictions: enableZoneCallingRestrictions
        enable_origination_roaming_restrictions: enableOriginationRoamingRestrictions
        enable_emergency_origination_roaming_restrictions:
            enableEmergencyOriginationRoamingRestrictions
        enable_termination_roaming_restrictions: enableTerminationRoamingRestrictions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enable_zone_calling_restrictions", "enableZoneCallingRestrictions", bool),
        E(
            "enable_origination_roaming_restrictions",
            "enableOriginationRoamingRestrictions", bool,
        ),
        E(
            "enable_emergency_origination_roaming_restrictions",
            "enableEmergencyOriginationRoamingRestrictions", bool,
        ),
        E(
            "enable_termination_roaming_restrictions",
            "enableTerminationRoamingRestrictions", bool,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enable_zone_calling_restrictions: bool = Field(type=bool, required=False, mutable=False)
    enable_origination_roaming_restrictions: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_emergency_origination_roaming_restrictions: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_termination_roaming_restrictions: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemASRParametersGetRequest(OCIRequest):
    """
    Request to get the list of Application Server Registration system parameters.

    The response is either ``SystemASRParametersGetResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemASRParametersGetRequest14sp5()``
    """

    _ELEMENTS = ()


class SystemASRParametersGetRequest14sp5(OCIRequest):
    """
    Request to get the list of Application Server Registration system parameters.

    The response is either ``SystemASRParametersGetResponse14sp5()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemASRParametersGetRequest14sp7(OCIRequest):
    """
    Request to get the list of Application Server Registration system parameters.

    The response is either ``SystemASRParametersGetResponse14sp7()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemASRParametersModifyRequest(OCIRequest):
    """
    Request to modify Application Server Registration system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        max_transmissions: maxTransmissions
        retransmission_delay_milli_seconds: retransmissionDelayMilliSeconds
        listening_port: listeningPort
        source_address: sourceAddress
    """

    _ELEMENTS = (
        E("max_transmissions", "maxTransmissions", int),
        E("retransmission_delay_milli_seconds", "retransmissionDelayMilliSeconds", int),
        E("listening_port", "listeningPort", int),
        E("source_address", "sourceAddress", str),
    )

    max_transmissions: int = Field(type=int, required=False, mutable=False)
    retransmission_delay_milli_seconds: int = Field(type=int, required=False, mutable=False)
    listening_port: int = Field(type=int, required=False, mutable=False)
    source_address: str = Field(type=str, required=False, mutable=False)


class SystemASRParametersModifyRequest14sp7(OCIRequest):
    """
    Request to modify Application Server Registration system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        max_transmissions: maxTransmissions
        retransmission_delay_milli_seconds: retransmissionDelayMilliSeconds
        listening_port: listeningPort
    """

    _ELEMENTS = (
        E("max_transmissions", "maxTransmissions", int),
        E("retransmission_delay_milli_seconds", "retransmissionDelayMilliSeconds", int),
        E("listening_port", "listeningPort", int),
    )

    max_transmissions: int = Field(type=int, required=False, mutable=False)
    retransmission_delay_milli_seconds: int = Field(type=int, required=False, mutable=False)
    listening_port: int = Field(type=int, required=False, mutable=False)


class SystemAccessDeviceCustomTagAddRequest(OCIRequest):
    """
    Request to add a static configuration tag for a system access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class SystemAccessDeviceCustomTagDeleteListRequest(OCIRequest):
    """
    Request to delete static configuration tags for a system access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        tag_name: tagName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceCustomTagGetListRequest(OCIRequest):
    """
    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 ``SystemAccessDeviceCustomTagGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceCustomTagModifyRequest(OCIRequest):
    """
    Request to modify a static configuration tag for a system access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class SystemAccessDeviceDeleteRequest(OCIRequest):
    """
    Request to delete a specified system access device.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceFileGetListRequest(OCIRequest):
    """
    Request to get the list of device files managed by the Device Management System, on a
    per-device profile basis.

    The response is either ``SystemAccessDeviceFileGetListResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemAccessDeviceFileGetListRequest14sp8()``

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceFileGetListRequest14sp8(OCIRequest):
    """
    Request to get the list of device files managed by the Device Management System, on a
    per-device profile basis.

    The response is either ``SystemAccessDeviceFileGetListResponse14sp8()`` or
    ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceFileGetRequest(OCIRequest):
    """
    Request to get a device profile file.

    The response is either ``SystemAccessDeviceFileGetResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemAccessDeviceFileGetRequest14sp8()``

    Attributes:
        device_name: deviceName
        file_type: fileType
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceFileGetRequest14sp8(OCIRequest):
    """
    Request to get a device profile file.

    The response is either ``SystemAccessDeviceFileGetResponse14sp8()`` or
    ``ErrorResponse()``. Replaced by: ``SystemAccessDeviceFileGetRequest16sp1()``

    Attributes:
        device_name: deviceName
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceFileGetRequest16sp1(OCIRequest):
    """
    Request to get a device profile file.

    The response is either ``SystemAccessDeviceFileGetResponse16sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceFileGetRequest20(OCIRequest):
    """
    Request to get a device profile file.

    The response is either ``SystemAccessDeviceFileGetResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceGetRequest(OCIRequest):
    """
    Requests the configuration of a specified system access device.

    The response is either ``SystemAccessDeviceGetResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemAccessDeviceGetRequest14sp3()``

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceGetRequest14sp3(OCIRequest):
    """
    Requests the configuration of a specified system access device.

    The response is either ``SystemAccessDeviceGetResponse14sp3()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemAccessDeviceGetRequest14sp6()``

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceGetRequest14sp6(OCIRequest):
    """
    Requests the configuration of a specified system access device.

    The response is either ``SystemAccessDeviceGetResponse14sp6()`` or
    ``ErrorResponse()``. Replaced by: ``SystemAccessDeviceGetRequest16()``

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceGetRequest16(OCIRequest):
    """
    Requests the configuration of a specified system access device.

    The response is either ``SystemAccessDeviceGetResponse16()`` or ``ErrorResponse()``.
    Replaced by: ``SystemAccessDeviceGetRequest19()``

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceGetRequest18sp1(OCIRequest):
    """
    Requests the configuration of a specified system access device.

    The response is either ``SystemAccessDeviceGetResponse18sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceModifyUserRequest(OCIRequest):
    """
    Request to modify attributes for line/ports assigned on the system device profile.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode and ignored in AS data mode: privateIdentity

    Attributes:
        device_name: deviceName
        line_port: linePort
        private_identity: privateIdentity
        is_primary_line_port: isPrimaryLinePort
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("line_port", "linePort", str, is_required=True),
        E("private_identity", "privateIdentity", str),
        E("is_primary_line_port", "isPrimaryLinePort", bool),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    line_port: str = Field(type=str, required=True, mutable=False)
    private_identity: str = Field(type=str, required=False, mutable=False)
    is_primary_line_port: bool = Field(type=bool, required=False, mutable=False)


class SystemAccessDeviceMonitorAddDeviceTypeRequest(OCIRequest):
    """
    Add a device type to be monitored.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        add_all_device_types: addAllDeviceTypes
        device_type: deviceType
    """

    _ELEMENTS = (
        E("add_all_device_types", "addAllDeviceTypes", bool),
        E("device_type", "deviceType", str),
    )

    add_all_device_types: bool = Field(type=bool, required=False, mutable=False)
    device_type: str = Field(type=str, required=False, mutable=False)


class SystemAccessDeviceMonitorDeleteDeviceTypeRequest(OCIRequest):
    """
    Remove a device type to be monitored.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        delete_all_device_types: deleteAllDeviceTypes
        device_type: deviceType
    """

    _ELEMENTS = (
        E("delete_all_device_types", "deleteAllDeviceTypes", bool),
        E("device_type", "deviceType", str),
    )

    delete_all_device_types: bool = Field(type=bool, required=False, mutable=False)
    device_type: str = Field(type=str, required=False, mutable=False)


class SystemAccessDeviceMonitorGetDeviceTypeListRequest(OCIRequest):
    """
    Get a list of monitored device types.

    The response is either a ``SystemAccessDeviceMonitorGetDeviceTypeListResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAccessDeviceMonitorParametersGetRequest(OCIRequest):
    """
    Request to get the list of Access Device Monitor system parameters.

    The response is either ``SystemAccessDeviceMonitorParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAccessDeviceMonitorParametersModifyRequest(OCIRequest):
    """
    Request to modify Access Device Monitor system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        polling_interval_minutes: pollingIntervalMinutes
    """

    _ELEMENTS = (
        E("polling_interval_minutes", "pollingIntervalMinutes", int),
    )

    polling_interval_minutes: int = Field(type=int, required=False, mutable=False)


class SystemAccessDeviceResetRequest(OCIRequest):
    """
    Reset a specific system SIP device that supports the reset operation.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemAccessDeviceTypeGetEnhancedConfigurableListRequest(OCIRequest):
    """
    Requests the list of device types supporting enhanced configuration.

    The response is either ``SystemAccessDeviceTypeGetEnhancedConfigurableListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAccessDeviceTypeGetListRequest(OCIRequest):
    """
    Requests the list of access device types.

    The response is either ``SystemAccessDeviceTypeGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAccountingAddChargingFunctionElementServerRequest(OCIRequest):
    """
    Request to add a ChargingFunctionElement Server to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        address: address
        is_net_address_extended: isNetAddressExtended
        type: type
        description: description
    """

    _ELEMENTS = (
        E("address", "address", str, is_required=True),
        E("is_net_address_extended", "isNetAddressExtended", bool, is_required=True),
        E("type", "type", str, is_required=True),
        E("description", "description", str),
    )

    address: str = Field(type=str, required=True, mutable=False)
    is_net_address_extended: bool = Field(type=bool, required=True, mutable=False)
    type: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemAccountingAddRadiusServerRequest(OCIRequest):
    """
    Request to add a Radius Server to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemAccountingDeleteChargingFunctionElementServerRequest(OCIRequest):
    """
    Request to delete a ChargingFunctionElementServer from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        address: address
    """

    _ELEMENTS = (
        E("address", "address", str, is_required=True),
    )

    address: str = Field(type=str, required=True, mutable=False)


class SystemAccountingDeleteRadiusServerRequest(OCIRequest):
    """
    Request to delete a Radius Server from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=True, mutable=False)


class SystemAccountingGetChargingFunctionElementServerListRequest(OCIRequest):
    """
    Request to get a list of ChargingFunctionElementServers defined in the system.

    The response is either a
    ``SystemAccountingGetChargingFunctionElementServerListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAccountingGetRadiusServerListRequest(OCIRequest):
    """
    Request to get a list of Radius Servers defined in the system.

    The response is either a ``SystemAccountingGetRadiusServerListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAccountingInhibitedAttributeValuePairCodeAddRequest(OCIRequest):
    """
    Add an Attribute Value Pair (AVP) combination to disable.

    The AVP combination includes a diameter AVP and a vendor ID.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        attribute_value_pair_code: attributeValuePairCode
        vendor_id: vendorId
    """

    _ELEMENTS = (
        E("attribute_value_pair_code", "attributeValuePairCode", int, is_required=True),
        E("vendor_id", "vendorId", int, is_required=True),
    )

    attribute_value_pair_code: int = Field(type=int, required=True, mutable=False)
    vendor_id: int = Field(type=int, required=True, mutable=False)


class SystemAccountingInhibitedAttributeValuePairCodeDeleteRequest(OCIRequest):
    """
    Remove an Attribute Value Pair (AVP) combination from the list of disabled AVP codes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        attribute_value_pair_code: attributeValuePairCode
        vendor_id: vendorId
    """

    _ELEMENTS = (
        E("attribute_value_pair_code", "attributeValuePairCode", int, is_required=True),
        E("vendor_id", "vendorId", int, is_required=True),
    )

    attribute_value_pair_code: int = Field(type=int, required=True, mutable=False)
    vendor_id: int = Field(type=int, required=True, mutable=False)


class SystemAccountingInhibitedAttributeValuePairCodeGetListRequest(OCIRequest):
    """
    Get a list of Attribute Value Pair (AVP) combinations that are disabled.

    The response is either a
    ``SystemAccountingInhibitedAttributeValuePairCodeGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAccountingModifyChargingFunctionElementServerRequest(OCIRequest):
    """
    Request to modify a ChargingFunctionElementServer in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        address: address
        type: type
        description: description
    """

    _ELEMENTS = (
        E("address", "address", str, is_required=True),
        E("type", "type", str),
        E("description", "description", str),
    )

    address: str = Field(type=str, required=True, mutable=False)
    type: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemAccountingModifyRadiusServerRequest(OCIRequest):
    """
    Request to modify a Radius Server in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemAccountingReorderChargingFunctionElementServerRequest(OCIRequest):
    """
    Reorder the charging function element servers.

    You can not add or delete addresses, only re-ordering the list is allowed.  The
    ordered list of addresses can be obtained with the
    ``SystemAccountingGetChargingFunctionElementServerListRequest()`` command.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        ordered_address_list: orderedAddressList
    """

    _ELEMENTS = (
        E("ordered_address_list", "orderedAddressList", str, is_required=True),
    )

    ordered_address_list: str = Field(type=str, required=True, mutable=False)


class SystemAdminAddRequest(OCIRequest):
    """
    Add a system or provisioning administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        first_name: firstName
        last_name: lastName
        password: password
        language: language
        admin_type: adminType
        read_only: readOnly
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("first_name", "firstName", str),
        E("last_name", "lastName", str),
        E("password", "password", str, is_required=True),
        E("language", "language", str),
        E("admin_type", "adminType", str, is_required=True),
        E("read_only", "readOnly", bool, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=False, mutable=False)
    admin_type: str = Field(type=str, required=True, mutable=False)
    read_only: bool = Field(type=bool, required=True, mutable=False)


class SystemAdminDeleteRequest(OCIRequest):
    """
    Delete a system or provisioning administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class SystemAdminGetListRequest(OCIRequest):
    """
    Get a list of system administrators.

    The response is either a ``SystemAdminGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAdminGetRequest(OCIRequest):
    """
    Get a system or provisioning administrators profile.

    The response is either a ``SystemAdminGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class SystemAdminModifyRequest(OCIRequest):
    """
    Modify a system or provisioning administrator.

    Since old password is not specified here, any password rule related to old password
    does not apply.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        first_name: firstName
        last_name: lastName
        password: password
        language: language
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("first_name", "firstName", str),
        E("last_name", "lastName", str),
        E("password", "password", str),
        E("language", "language", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    language: str = Field(type=str, required=False, mutable=False)


class SystemAdviceOfChargeCostInformationSourceAddRequest(OCIRequest):
    """
    Add a cost information source.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        peer_identity: peerIdentity
        priority: priority
    """

    _ELEMENTS = (
        E("peer_identity", "peerIdentity", str, is_required=True),
        E("priority", "priority", int, is_required=True),
    )

    peer_identity: str = Field(type=str, required=True, mutable=False)
    priority: int = Field(type=int, required=True, mutable=False)


class SystemAdviceOfChargeCostInformationSourceDeleteRequest(OCIRequest):
    """
    Delete a cost information source.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        peer_identity: peerIdentity
    """

    _ELEMENTS = (
        E("peer_identity", "peerIdentity", str, is_required=True),
    )

    peer_identity: str = Field(type=str, required=True, mutable=False)


class SystemAdviceOfChargeCostInformationSourceGetListRequest(OCIRequest):
    """
    Get a list of cost information sources.

    The response is either ``SystemAdviceOfChargeCostInformationSourceGetListResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAdviceOfChargeCostInformationSourceModifyRequest(OCIRequest):
    """
    Modify a cost information source.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        peer_identity: peerIdentity
        priority: priority
    """

    _ELEMENTS = (
        E("peer_identity", "peerIdentity", str, is_required=True),
        E("priority", "priority", int, is_required=True),
    )

    peer_identity: str = Field(type=str, required=True, mutable=False)
    priority: int = Field(type=int, required=True, mutable=False)


class SystemAdviceOfChargeGetRequest(OCIRequest):
    """
    Request to get the list of Advice of Charge system parameters.

    The response is either ``SystemAdviceOfChargeGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAdviceOfChargeGetRequest19sp1(OCIRequest):
    """
    Request to get the list of Advice of Charge system parameters.

    The response is either ``SystemAdviceOfChargeGetResponse19sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAdviceOfChargeModifyRequest(OCIRequest):
    """
    Request to modify Advice of Charge system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        delay_between_notification_seconds: delayBetweenNotificationSeconds
        incoming_aoc_handling: incomingAocHandling
        cost_information_source: costInformationSource
    """

    _ELEMENTS = (
        E("delay_between_notification_seconds", "delayBetweenNotificationSeconds", int),
        E("incoming_aoc_handling", "incomingAocHandling", str),
        E("cost_information_source", "costInformationSource", str),
    )

    delay_between_notification_seconds: int = Field(type=int, required=False, mutable=False)
    incoming_aoc_handling: str = Field(type=str, required=False, mutable=False)
    cost_information_source: str = Field(type=str, required=False, mutable=False)


class SystemAdviceOfChargeModifyRequest19sp1(OCIRequest):
    """
    Request to modify Advice of Charge system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        delay_between_notification_seconds: delayBetweenNotificationSeconds
        incoming_aoc_handling: incomingAocHandling
        use_ocs_enquiry: useOCSEnquiry
        ocs_enquiry_type: OCSEnquiryType
    """

    _ELEMENTS = (
        E("delay_between_notification_seconds", "delayBetweenNotificationSeconds", int),
        E("incoming_aoc_handling", "incomingAocHandling", str),
        E("use_ocs_enquiry", "useOCSEnquiry", bool),
        E("ocs_enquiry_type", "OCSEnquiryType", str),
    )

    delay_between_notification_seconds: int = Field(type=int, required=False, mutable=False)
    incoming_aoc_handling: str = Field(type=str, required=False, mutable=False)
    use_ocs_enquiry: bool = Field(type=bool, required=False, mutable=False)
    ocs_enquiry_type: str = Field(type=str, required=False, mutable=False)


class SystemAliasAddRequest(OCIRequest):
    """
    Add a system-level Application Server alias to the system.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        alias_net_address: aliasNetAddress
    """

    _ELEMENTS = (
        E("alias_net_address", "aliasNetAddress", str, is_required=True),
    )

    alias_net_address: str = Field(type=str, required=True, mutable=False)


class SystemAliasDeleteRequest(OCIRequest):
    """
    Delete a system-level Application Server alias from the system.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        alias_net_address: aliasNetAddress
    """

    _ELEMENTS = (
        E("alias_net_address", "aliasNetAddress", str, is_required=True),
    )

    alias_net_address: str = Field(type=str, required=True, mutable=False)


class SystemAliasGetListRequest(OCIRequest):
    """
    Requests the list of all system-level Application Server aliases.

    The response is either ``SystemAliasGetListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAnonymousCallRejectionGetRequest(OCIRequest):
    """
    Get Anonymous Call Rejection system parameters.

    The response is either a ``SystemAnonymousCallRejectionGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAnonymousCallRejectionModifyRequest(OCIRequest):
    """
    Modify a system Anonymous Call Rejection parameter.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        pai_required: paiRequired
        screen_only_local_calls: screenOnlyLocalCalls
    """

    _ELEMENTS = (
        E("pai_required", "paiRequired", bool),
        E("screen_only_local_calls", "screenOnlyLocalCalls", bool),
    )

    pai_required: bool = Field(type=bool, required=False, mutable=False)
    screen_only_local_calls: bool = Field(type=bool, required=False, mutable=False)


class SystemApplicationControllerAddRequest(OCIRequest):
    """
    Add an application controller, which is a server where remote application resides and
    controls the Route Point.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        subscriber_id: subscriberId
        channel_set_id: channelSetId
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("subscriber_id", "subscriberId", str, is_required=True),
        E("channel_set_id", "channelSetId", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    subscriber_id: str = Field(type=str, required=True, mutable=False)
    channel_set_id: str = Field(type=str, required=True, mutable=False)


class SystemApplicationControllerDeleteRequest(OCIRequest):
    """
    Delete an application controller.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemApplicationControllerGetListRequest(OCIRequest):
    """
    Get a list of application controllers that are configured for the system.

    The response is either ``SystemApplicationControllerGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAttendantConsoleGetRequest(OCIRequest):
    """
    Request to get the list of Attendant Console parameters.

    The response is either ``SystemAttendantConsoleGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAttendantConsoleModifyRequest(OCIRequest):
    """
    Modify Attendant Console settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        max_monitored_users: maxMonitoredUsers
    """

    _ELEMENTS = (
        E("max_monitored_users", "maxMonitoredUsers", int),
    )

    max_monitored_users: int = Field(type=int, required=False, mutable=False)


class SystemAuthenticationLockoutExportDataGetRequest(OCIRequest):
    """
    Request to export system wide authentication lockout data to a file.

    All locked out device profiles, sip endpoints, and sip trunk groups are returned.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        file_name: fileName
    """

    _ELEMENTS = (
        E("file_name", "fileName", str, is_required=True),
    )

    file_name: str = Field(type=str, required=True, mutable=False)


class SystemAuthenticationLockoutSettingsGetRequest(OCIRequest):
    """
    Request to get the authentication lockout settings in the system.

    The response is either a ``SystemAuthenticationLockoutSettingsResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAuthenticationLockoutSettingsModifyRequest(OCIRequest):
    """
    Request to modify the system level device password lockout settings The response is
    either ``SuccessResponse()`` or ``ErrorResponse()``.


    Attributes:
        counter_reset_interval_days: counterResetIntervalDays
        counter_reset_hour: counterResetHour
        counter_reset_minute: counterResetMinute
        emergency_sip_bypass_allowed: emergencySIPBypassAllowed
    """

    _ELEMENTS = (
        E("counter_reset_interval_days", "counterResetIntervalDays", int),
        E("counter_reset_hour", "counterResetHour", int),
        E("counter_reset_minute", "counterResetMinute", int),
        E("emergency_sip_bypass_allowed", "emergencySIPBypassAllowed", bool),
    )

    counter_reset_interval_days: int = Field(type=int, required=False, mutable=False)
    counter_reset_hour: int = Field(type=int, required=False, mutable=False)
    counter_reset_minute: int = Field(type=int, required=False, mutable=False)
    emergency_sip_bypass_allowed: bool = Field(type=bool, required=False, mutable=False)


class SystemAutomaticCallbackAddReleaseCauseListRequest(OCIRequest):
    """
    Adds automatic callback release cause to the releaseCause attribute.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        release_cause: releaseCause
    """

    _ELEMENTS = (
        E("release_cause", "releaseCause", str, is_array=True),
    )

    release_cause: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemAutomaticCallbackDeleteReleaseCauseListRequest(OCIRequest):
    """
    Deletes automatic callback release causes from the release cause attribute.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        release_cause: releaseCause
    """

    _ELEMENTS = (
        E("release_cause", "releaseCause", str, is_array=True),
    )

    release_cause: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemAutomaticCallbackGetReleaseCauseListRequest(OCIRequest):
    """
    Request the system's automatic callback attributes.

    The response is either a ``SystemAutomaticCallbackGetReleaseCauseListResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAutomaticCallbackGetRequest(OCIRequest):
    """
    Request the system's automatic callback attributes.

    The response is either a ``SystemAutomaticCallbackGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemAutomaticCallbackGetRequest15()``
    """

    _ELEMENTS = ()


class SystemAutomaticCallbackGetRequest15(OCIRequest):
    """
    Request the system's automatic callback attributes.

    The response is either a ``SystemAutomaticCallbackGetResponse15()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemAutomaticCallbackGetRequest15sp2()``
    """

    _ELEMENTS = ()


class SystemAutomaticCallbackGetRequest15sp2(OCIRequest):
    """
    Request the system's automatic callback attributes.

    The response is either a ``SystemAutomaticCallbackGetResponse15sp2()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemAutomaticCallbackGetRequest17()``
    """

    _ELEMENTS = ()


class SystemAutomaticCallbackGetRequest17(OCIRequest):
    """
    Request the system's automatic callback attributes.

    The response is either a ``SystemAutomaticCallbackGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemAutomaticCallbackModifyRequest(OCIRequest):
    """
    Modifies the system's automatic callback attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``SystemAutomaticCallbackModifyRequest15()``

    Attributes:
        monitor_minutes: monitorMinutes
        wait_between_retry_originator_minutes: waitBetweenRetryOriginatorMinutes
        max_monitors_per_originator: maxMonitorsPerOriginator
        max_callback_rings: maxCallbackRings
        max_retry_originator_minutes: maxRetryOriginatorMinutes
    """

    _ELEMENTS = (
        E("monitor_minutes", "monitorMinutes", int),
        E("wait_between_retry_originator_minutes", "waitBetweenRetryOriginatorMinutes", int),
        E("max_monitors_per_originator", "maxMonitorsPerOriginator", int),
        E("max_callback_rings", "maxCallbackRings", int),
        E("max_retry_originator_minutes", "maxRetryOriginatorMinutes", int),
    )

    monitor_minutes: int = Field(type=int, required=False, mutable=False)
    wait_between_retry_originator_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    max_monitors_per_originator: int = Field(type=int, required=False, mutable=False)
    max_callback_rings: int = Field(type=int, required=False, mutable=False)
    max_retry_originator_minutes: int = Field(type=int, required=False, mutable=False)


class SystemAutomaticCallbackModifyRequest15(OCIRequest):
    """
    Modifies the system's automatic callback attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        monitor_minutes: monitorMinutes
        max_monitors_per_originator: maxMonitorsPerOriginator
        max_callback_rings: maxCallbackRings
        max_monitors_per_terminator: maxMonitorsPerTerminator
        terminator_idle_guard_seconds: terminatorIdleGuardSeconds
        callback_method: callbackMethod
        polling_interval_seconds: pollingIntervalSeconds
        activation_digit: activationDigit
    """

    _ELEMENTS = (
        E("monitor_minutes", "monitorMinutes", int),
        E("max_monitors_per_originator", "maxMonitorsPerOriginator", int),
        E("max_callback_rings", "maxCallbackRings", int),
        E("max_monitors_per_terminator", "maxMonitorsPerTerminator", int),
        E("terminator_idle_guard_seconds", "terminatorIdleGuardSeconds", int),
        E("callback_method", "callbackMethod", str),
        E("polling_interval_seconds", "pollingIntervalSeconds", int),
        E("activation_digit", "activationDigit", int),
    )

    monitor_minutes: int = Field(type=int, required=False, mutable=False)
    max_monitors_per_originator: int = Field(type=int, required=False, mutable=False)
    max_callback_rings: int = Field(type=int, required=False, mutable=False)
    max_monitors_per_terminator: int = Field(type=int, required=False, mutable=False)
    terminator_idle_guard_seconds: int = Field(type=int, required=False, mutable=False)
    callback_method: str = Field(type=str, required=False, mutable=False)
    polling_interval_seconds: int = Field(type=int, required=False, mutable=False)
    activation_digit: int = Field(type=int, required=False, mutable=False)


class SystemBCCTAddOCIInterfaceAddressRequest(OCIRequest):
    """
    Add an OCI entry to the Broadworks Common Communication Transport (BCCT) protocol to
    interface mapping table.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        interface_net_address: interfaceNetAddress
    """

    _ELEMENTS = (
        E("interface_net_address", "interfaceNetAddress", str, is_required=True),
    )

    interface_net_address: str = Field(type=str, required=True, mutable=False)


class SystemBCCTDeleteOCIInterfaceAddressRequest(OCIRequest):
    """
    Delete an OCI entry in the Broadworks Common Communication Transport (BCCT) protocol
    to interface mapping table.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        interface_net_address: interfaceNetAddress
    """

    _ELEMENTS = (
        E("interface_net_address", "interfaceNetAddress", str, is_required=True),
    )

    interface_net_address: str = Field(type=str, required=True, mutable=False)


class SystemBCCTGetOCIInterfaceAddressListRequest(OCIRequest):
    """
    Get the OCI entries from the Broadworks Common Communication Transport (BCCT) protocol
    to interface mapping list.

    The response is ``SystemBCCTGetOCIInterfaceAddressListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBroadCloudGetRequest(OCIRequest):
    """
    Get the system interface attributes for Messaging Server.

    The response is either ``SystemBroadCloudGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBroadCloudModifyRequest(OCIRequest):
    """
    Modify the system interface attributes for Messaging Server.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        provisioning_url: provisioningUrl
        provisioning_user_id: provisioningUserId
        provisioning_password: provisioningPassword
        enable_synchronization: enableSynchronization
    """

    _ELEMENTS = (
        E("provisioning_url", "provisioningUrl", str),
        E("provisioning_user_id", "provisioningUserId", str),
        E("provisioning_password", "provisioningPassword", str),
        E("enable_synchronization", "enableSynchronization", bool),
    )

    provisioning_url: str = Field(type=str, required=False, mutable=False)
    provisioning_user_id: str = Field(type=str, required=False, mutable=False)
    provisioning_password: str = Field(type=str, required=False, mutable=False)
    enable_synchronization: bool = Field(type=bool, required=False, mutable=False)


class SystemBroadWorksMobileManagerGetRequest(OCIRequest):
    """
    Get the BroadWorks Mobile Manager service system settings.

    The response is either ``SystemBroadWorksMobileManagerGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBroadWorksMobileManagerModifyRequest(OCIRequest):
    """
    Modify the BroadWorks Mobile Manager service system settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        scf_api_net_address1: scfApiNetAddress1
        scf_api_net_address2: scfApiNetAddress2
        user_name: userName
        password: password
        email_from_address: emailFromAddress
        scf_ims_only: scfIMSOnly
        signaling_ip_address: signalingIPAddress
        signaling_port: signalingPort
    """

    _ELEMENTS = (
        E("scf_api_net_address1", "scfApiNetAddress1", str),
        E("scf_api_net_address2", "scfApiNetAddress2", str),
        E("user_name", "userName", str),
        E("password", "password", str),
        E("email_from_address", "emailFromAddress", str),
        E("scf_ims_only", "scfIMSOnly", bool),
        E("signaling_ip_address", "signalingIPAddress", str),
        E("signaling_port", "signalingPort", int),
    )

    scf_api_net_address1: str = Field(type=str, required=False, mutable=False)
    scf_api_net_address2: str = Field(type=str, required=False, mutable=False)
    user_name: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    email_from_address: str = Field(type=str, required=False, mutable=False)
    scf_ims_only: bool = Field(type=bool, required=False, mutable=False)
    signaling_ip_address: str = Field(type=str, required=False, mutable=False)
    signaling_port: int = Field(type=int, required=False, mutable=False)


class SystemBroadWorksMobilityDeleteIMRNListRequest(OCIRequest):
    """
    Removes a BroadWorks Mobility IMRN number from the system.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        imrn_number: imrnNumber
    """

    _ELEMENTS = (
        E("imrn_number", "imrnNumber", str, is_required=True),
    )

    imrn_number: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityDeleteMobileNetworkIMRNListRequest(OCIRequest):
    """
    Remove BroadWorks Mobility IMRN numbers from a Mobile Network.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        mobile_network_name: mobileNetworkName
        imrn_number: imrnNumber
    """

    _ELEMENTS = (
        E("mobile_network_name", "mobileNetworkName", str, is_required=True),
        E("imrn_number", "imrnNumber", str, is_required=True),
    )

    mobile_network_name: str = Field(type=str, required=True, mutable=False)
    imrn_number: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityGetRequest(OCIRequest):
    """
    Get the broadworks mobility system parameters.

    The response is either a ``SystemBroadWorksMobilityGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemBroadWorksMobilityGetRequest17sp4()``.
    """

    _ELEMENTS = ()


class SystemBroadWorksMobilityGetRequest17sp4(OCIRequest):
    """
    Get the broadworks mobility system parameters.

    The response is either a ``SystemBroadWorksMobilityGetResponse17sp4()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemBroadWorksMobilityGetRequest19sp1()``
    """

    _ELEMENTS = ()


class SystemBroadWorksMobilityGetRequest19sp1(OCIRequest):
    """
    Get the broadworks mobility system parameters.

    The response is either a ``SystemBroadWorksMobilityGetResponse19sp1()`` or an
    ``ErrorResponse()``. Replaced by ``SystemBroadWorksMobilityGetRequest21()``
    """

    _ELEMENTS = ()


class SystemBroadWorksMobilityGetRequest21(OCIRequest):
    """
    Get the broadworks mobility system parameters.

    The response is either a ``SystemBroadWorksMobilityGetResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBroadWorksMobilityMobileNetworkAddRequest(OCIRequest):
    """
    Add a Mobile Network.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
        scf_signaling_net_address: scfSignalingNetAddress
        scf_signaling_port: scfSignalingPort
        refresh_period_seconds: refreshPeriodSeconds
        max_consecutive_failures: maxConsecutiveFailures
        max_response_wait_time_milliseconds: maxResponseWaitTimeMilliseconds
        enable_announcement_suppression: enableAnnouncementSuppression
        service_access_code_list_name: serviceAccessCodeListName
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("scf_signaling_net_address", "scfSignalingNetAddress", str),
        E("scf_signaling_port", "scfSignalingPort", int),
        E("refresh_period_seconds", "refreshPeriodSeconds", int, is_required=True),
        E("max_consecutive_failures", "maxConsecutiveFailures", int, is_required=True),
        E(
            "max_response_wait_time_milliseconds", "maxResponseWaitTimeMilliseconds", int,
            is_required=True,
        ),
        E(
            "enable_announcement_suppression", "enableAnnouncementSuppression", bool,
            is_required=True,
        ),
        E("service_access_code_list_name", "serviceAccessCodeListName", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    scf_signaling_net_address: str = Field(type=str, required=False, mutable=False)
    scf_signaling_port: int = Field(type=int, required=False, mutable=False)
    refresh_period_seconds: int = Field(type=int, required=True, mutable=False)
    max_consecutive_failures: int = Field(type=int, required=True, mutable=False)
    max_response_wait_time_milliseconds: int = Field(type=int, required=True, mutable=False)
    enable_announcement_suppression: bool = Field(type=bool, required=True, mutable=False)
    service_access_code_list_name: str = Field(type=str, required=False, mutable=False)


class SystemBroadWorksMobilityMobileNetworkDeleteRequest(OCIRequest):
    """
    Delete a Mobile Network.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityMobileNetworkGetListRequest(OCIRequest):
    """
    Get the list of Mobile Networks.

    The response is either ``SystemBroadWorksMobilityMobileNetworkGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBroadWorksMobilityMobileNetworkGetRequest(OCIRequest):
    """
    Get a Mobile Network.

    The response is either ``SystemBroadWorksMobilityMobileNetworkGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityMobileNetworkModifyRequest(OCIRequest):
    """
    Modify a Mobile Network.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        scf_signaling_net_address: scfSignalingNetAddress
        scf_signaling_port: scfSignalingPort
        refresh_period_seconds: refreshPeriodSeconds
        max_consecutive_failures: maxConsecutiveFailures
        max_response_wait_time_milliseconds: maxResponseWaitTimeMilliseconds
        enable_announcement_suppression: enableAnnouncementSuppression
        service_access_code_list_name: serviceAccessCodeListName
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("scf_signaling_net_address", "scfSignalingNetAddress", str),
        E("scf_signaling_port", "scfSignalingPort", int),
        E("refresh_period_seconds", "refreshPeriodSeconds", int),
        E("max_consecutive_failures", "maxConsecutiveFailures", int),
        E("max_response_wait_time_milliseconds", "maxResponseWaitTimeMilliseconds", int),
        E("enable_announcement_suppression", "enableAnnouncementSuppression", bool),
        E("service_access_code_list_name", "serviceAccessCodeListName", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    scf_signaling_net_address: str = Field(type=str, required=False, mutable=False)
    scf_signaling_port: int = Field(type=int, required=False, mutable=False)
    refresh_period_seconds: int = Field(type=int, required=False, mutable=False)
    max_consecutive_failures: int = Field(type=int, required=False, mutable=False)
    max_response_wait_time_milliseconds: int = Field(type=int, required=False, mutable=False)
    enable_announcement_suppression: bool = Field(type=bool, required=False, mutable=False)
    service_access_code_list_name: str = Field(type=str, required=False, mutable=False)


class SystemBroadWorksMobilityModifyRequest(OCIRequest):
    """
    Modify the BroadWorks Mobility system parameters.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``SystemBroadWorksMobilityModifyRequest17sp4()``.

    Attributes:
        enable_location_services: enableLocationServices
        enable_msrn_lookup: enableMSRNLookup
        enable_mobile_state_checking: enableMobileStateChecking
        deny_call_originations: denyCallOriginations
        deny_call_terminations: denyCallTerminations
        imrn_timeout_milliseconds: imrnTimeoutMilliseconds
        scf_signaling_ip_address: scfSignalingIPAddress
        scf_signaling_port: scfSignalingPort
    """

    _ELEMENTS = (
        E("enable_location_services", "enableLocationServices", bool),
        E("enable_msrn_lookup", "enableMSRNLookup", bool),
        E("enable_mobile_state_checking", "enableMobileStateChecking", bool),
        E("deny_call_originations", "denyCallOriginations", bool),
        E("deny_call_terminations", "denyCallTerminations", bool),
        E("imrn_timeout_milliseconds", "imrnTimeoutMilliseconds", int),
        E("scf_signaling_ip_address", "scfSignalingIPAddress", str),
        E("scf_signaling_port", "scfSignalingPort", int),
    )

    enable_location_services: bool = Field(type=bool, required=False, mutable=False)
    enable_msrn_lookup: bool = Field(type=bool, required=False, mutable=False)
    enable_mobile_state_checking: bool = Field(type=bool, required=False, mutable=False)
    deny_call_originations: bool = Field(type=bool, required=False, mutable=False)
    deny_call_terminations: bool = Field(type=bool, required=False, mutable=False)
    imrn_timeout_milliseconds: int = Field(type=int, required=False, mutable=False)
    scf_signaling_ip_address: str = Field(type=str, required=False, mutable=False)
    scf_signaling_port: int = Field(type=int, required=False, mutable=False)


class SystemBroadWorksMobilityModifyRequest17sp4(OCIRequest):
    """
    Modify the BroadWorks Mobility system parameters.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``SystemBroadWorksMobilityModifyRequest21()``.

    Attributes:
        enable_location_services: enableLocationServices
        enable_msrn_lookup: enableMSRNLookup
        enable_mobile_state_checking: enableMobileStateChecking
        deny_call_originations: denyCallOriginations
        deny_call_terminations: denyCallTerminations
        imrn_timeout_milliseconds: imrnTimeoutMilliseconds
        scf_signaling_net_address: scfSignalingNetAddress
        scf_signaling_port: scfSignalingPort
        refresh_period_seconds: refreshPeriodSeconds
        max_consecutive_failures: maxConsecutiveFailures
        max_response_wait_time_milliseconds: maxResponseWaitTimeMilliseconds
        enable_announcement_suppression: enableAnnouncementSuppression
    """

    _ELEMENTS = (
        E("enable_location_services", "enableLocationServices", bool),
        E("enable_msrn_lookup", "enableMSRNLookup", bool),
        E("enable_mobile_state_checking", "enableMobileStateChecking", bool),
        E("deny_call_originations", "denyCallOriginations", bool),
        E("deny_call_terminations", "denyCallTerminations", bool),
        E("imrn_timeout_milliseconds", "imrnTimeoutMilliseconds", int),
        E("scf_signaling_net_address", "scfSignalingNetAddress", str),
        E("scf_signaling_port", "scfSignalingPort", int),
        E("refresh_period_seconds", "refreshPeriodSeconds", int),
        E("max_consecutive_failures", "maxConsecutiveFailures", int),
        E("max_response_wait_time_milliseconds", "maxResponseWaitTimeMilliseconds", int),
        E("enable_announcement_suppression", "enableAnnouncementSuppression", bool),
    )

    enable_location_services: bool = Field(type=bool, required=False, mutable=False)
    enable_msrn_lookup: bool = Field(type=bool, required=False, mutable=False)
    enable_mobile_state_checking: bool = Field(type=bool, required=False, mutable=False)
    deny_call_originations: bool = Field(type=bool, required=False, mutable=False)
    deny_call_terminations: bool = Field(type=bool, required=False, mutable=False)
    imrn_timeout_milliseconds: int = Field(type=int, required=False, mutable=False)
    scf_signaling_net_address: str = Field(type=str, required=False, mutable=False)
    scf_signaling_port: int = Field(type=int, required=False, mutable=False)
    refresh_period_seconds: int = Field(type=int, required=False, mutable=False)
    max_consecutive_failures: int = Field(type=int, required=False, mutable=False)
    max_response_wait_time_milliseconds: int = Field(type=int, required=False, mutable=False)
    enable_announcement_suppression: bool = Field(type=bool, required=False, mutable=False)


class SystemBroadWorksMobilityModifyRequest21(OCIRequest):
    """
    Modify the BroadWorks Mobility system parameters.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        enable_location_services: enableLocationServices
        enable_msrn_lookup: enableMSRNLookup
        enable_mobile_state_checking: enableMobileStateChecking
        deny_call_originations: denyCallOriginations
        deny_call_terminations: denyCallTerminations
        imrn_timeout_milliseconds: imrnTimeoutMilliseconds
    """

    _ELEMENTS = (
        E("enable_location_services", "enableLocationServices", bool),
        E("enable_msrn_lookup", "enableMSRNLookup", bool),
        E("enable_mobile_state_checking", "enableMobileStateChecking", bool),
        E("deny_call_originations", "denyCallOriginations", bool),
        E("deny_call_terminations", "denyCallTerminations", bool),
        E("imrn_timeout_milliseconds", "imrnTimeoutMilliseconds", int),
    )

    enable_location_services: bool = Field(type=bool, required=False, mutable=False)
    enable_msrn_lookup: bool = Field(type=bool, required=False, mutable=False)
    enable_mobile_state_checking: bool = Field(type=bool, required=False, mutable=False)
    deny_call_originations: bool = Field(type=bool, required=False, mutable=False)
    deny_call_terminations: bool = Field(type=bool, required=False, mutable=False)
    imrn_timeout_milliseconds: int = Field(type=int, required=False, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeAddRequest(OCIRequest):
    """
    Add a system service access code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by
    ``SystemBroadWorksMobilityServiceAccessCodeAddRequest21()``.

    Attributes:
        service_access_code: serviceAccessCode
        country_code: countryCode
        description: description
    """

    _ELEMENTS = (
        E("service_access_code", "serviceAccessCode", str, is_required=True),
        E("country_code", "countryCode", str, is_required=True),
        E("description", "description", str),
    )

    service_access_code: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeAddRequest21(OCIRequest):
    """
    Add a service access code to a list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_access_code_list_name: serviceAccessCodeListName
        country_code: countryCode
        service_access_code: serviceAccessCode
        description: description
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name", "serviceAccessCodeListName", str,
            is_required=True,
        ),
        E("country_code", "countryCode", str, is_required=True),
        E("service_access_code", "serviceAccessCode", str, is_required=True),
        E("description", "description", str),
    )

    service_access_code_list_name: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)
    service_access_code: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeDeleteRequest(OCIRequest):
    """
    Delete a system service access code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by
    ``SystemBroadWorksMobilityServiceAccessCodeDeleteRequest21()``.

    Attributes:
        country_code: countryCode
        service_access_code: serviceAccessCode
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str, is_required=True),
        E("service_access_code", "serviceAccessCode", str, is_required=True),
    )

    country_code: str = Field(type=str, required=True, mutable=False)
    service_access_code: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeDeleteRequest21(OCIRequest):
    """
    Delete a service access code from a list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_access_code_list_name: serviceAccessCodeListName
        country_code: countryCode
        service_access_code: serviceAccessCode
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name", "serviceAccessCodeListName", str,
            is_required=True,
        ),
        E("country_code", "countryCode", str, is_required=True),
        E("service_access_code", "serviceAccessCode", str, is_required=True),
    )

    service_access_code_list_name: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)
    service_access_code: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeGetListRequest(OCIRequest):
    """
    Get a list of system service access codes.

    The response is either ``SystemBroadWorksMobilityServiceAccessCodeGetListResponse()``
    or ``ErrorResponse()``. Replaced by
    ``SystemBroadWorksMobilityServiceAccessCodeGetListRequest21()``.
    """

    _ELEMENTS = ()


class SystemBroadWorksMobilityServiceAccessCodeGetListRequest21(OCIRequest):
    """
    Get a list of system service access codes.

    The response is either
    ``SystemBroadWorksMobilityServiceAccessCodeGetListResponse21()`` or
    ``ErrorResponse()``.

    Attributes:
        service_access_code_list_name: serviceAccessCodeListName
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name", "serviceAccessCodeListName", str,
            is_required=True,
        ),
    )

    service_access_code_list_name: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeListAddRequest(OCIRequest):
    """
    Add a Service Access Code list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeListDeleteRequest(OCIRequest):
    """
    Delete a Service Access Code list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeListGetListRequest(OCIRequest):
    """
    Get the list of Service Access Code lists.

    The response is either
    ``SystemBroadWorksMobilityServiceAccessCodeListGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBroadWorksMobilityServiceAccessCodeListModifyRequest(OCIRequest):
    """
    Modify a Service Access Code list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeListUsageGetRequest(OCIRequest):
    """
    Get all the Mobile Networks using a given Service Access Code list.

    The response is either
    ``SystemBroadWorksMobilityServiceAccessCodeListUsageGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_access_code_list_name: serviceAccessCodeListName
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name", "serviceAccessCodeListName", str,
            is_required=True,
        ),
    )

    service_access_code_list_name: str = Field(type=str, required=True, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeModifyRequest(OCIRequest):
    """
    Modify a system service access code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by
    ``SystemBroadWorksMobilityServiceAccessCodeModifyRequest21()``.

    Attributes:
        country_code: countryCode
        service_access_code: serviceAccessCode
        description: description
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str, is_required=True),
        E("service_access_code", "serviceAccessCode", str, is_required=True),
        E("description", "description", str),
    )

    country_code: str = Field(type=str, required=True, mutable=False)
    service_access_code: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemBroadWorksMobilityServiceAccessCodeModifyRequest21(OCIRequest):
    """
    Modify a service access code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_access_code_list_name: serviceAccessCodeListName
        country_code: countryCode
        service_access_code: serviceAccessCode
        description: description
    """

    _ELEMENTS = (
        E(
            "service_access_code_list_name", "serviceAccessCodeListName", str,
            is_required=True,
        ),
        E("country_code", "countryCode", str, is_required=True),
        E("service_access_code", "serviceAccessCode", str, is_required=True),
        E("description", "description", str),
    )

    service_access_code_list_name: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)
    service_access_code: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemBroadWorksReceptionistEnterpriseGetRequest(OCIRequest):
    """
    Request to get the list of BroadWorks Receptionist - Enterprise parameters.

    The response is either ``SystemBroadWorksReceptionistEnterpriseGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBroadWorksReceptionistEnterpriseModifyRequest(OCIRequest):
    """
    Request to modify BroadWorks Receptionist - Enterprise settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        max_monitored_users: maxMonitoredUsers
    """

    _ELEMENTS = (
        E("max_monitored_users", "maxMonitoredUsers", int),
    )

    max_monitored_users: int = Field(type=int, required=False, mutable=False)


class SystemBusyLampFieldGetRequest(OCIRequest):
    """
    Request the system level data associated with the Busy Lamp Field service.

    The response is either a ``SystemBusyLampFieldGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBusyLampFieldGetRequest18(OCIRequest):
    """
    Request the system level data associated with the Busy Lamp Field service.

    The response is either a ``SystemBusyLampFieldGetResponse18()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBusyLampFieldModifyRequest(OCIRequest):
    """
    Modify the system level data associated with the Busy Lamp Field Service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: forceUseOfTCP

    Attributes:
        display_local_user_identity_last_name_first: displayLocalUserIdentityLastNameFirst
        force_use_of_tcp: forceUseOfTCP
    """

    _ELEMENTS = (
        E(
            "display_local_user_identity_last_name_first",
            "displayLocalUserIdentityLastNameFirst", bool,
        ),
        E("force_use_of_tcp", "forceUseOfTCP", bool),
    )

    display_local_user_identity_last_name_first: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_use_of_tcp: bool = Field(type=bool, required=False, mutable=False)


class SystemBwDiameterBaseDataGetRequest(OCIRequest):
    """
    Requests the list of System Diameter base parameters.

    The response is either ``SystemBwDiameterBaseDataGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBwDiameterBaseDataGetRequest17sp3(OCIRequest):
    """
    Requests the list of System Diameter base parameters.

    The response is either ``SystemBwDiameterBaseDataGetResponse17sp3()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBwDiameterBaseDataModifyRequest(OCIRequest):
    """
    Modifies the System Diameter base parameters.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        xs_realm: xsRealm
        xs_listening_port: xsListeningPort
        ps_realm: psRealm
        ps_listening_port: psListeningPort
        ps_relay_through_xs: psRelayThroughXs
        xs_relay_listening_port: xsRelayListeningPort
        tc_timer_seconds: tcTimerSeconds
        tw_timer_seconds: twTimerSeconds
        request_timer_seconds: requestTimerSeconds
        busy_peer_detection_outstanding_txn_count: busyPeerDetectionOutstandingTxnCount
        busy_peer_restore_outstanding_txn_count: busyPeerRestoreOutstandingTxnCount
        dynamic_entry_inactivity_timer_hours: dynamicEntryInactivityTimerHours
        advertised_offline_billing_application: advertisedOfflineBillingApplication
        advertised_online_billing_application: advertisedOnlineBillingApplication
    """

    _ELEMENTS = (
        E("xs_realm", "xsRealm", str),
        E("xs_listening_port", "xsListeningPort", int),
        E("ps_realm", "psRealm", str),
        E("ps_listening_port", "psListeningPort", int),
        E("ps_relay_through_xs", "psRelayThroughXs", bool),
        E("xs_relay_listening_port", "xsRelayListeningPort", int),
        E("tc_timer_seconds", "tcTimerSeconds", int),
        E("tw_timer_seconds", "twTimerSeconds", int),
        E("request_timer_seconds", "requestTimerSeconds", int),
        E(
            "busy_peer_detection_outstanding_txn_count",
            "busyPeerDetectionOutstandingTxnCount", int,
        ),
        E(
            "busy_peer_restore_outstanding_txn_count",
            "busyPeerRestoreOutstandingTxnCount", int,
        ),
        E("dynamic_entry_inactivity_timer_hours", "dynamicEntryInactivityTimerHours", int),
        E(
            "advertised_offline_billing_application",
            "advertisedOfflineBillingApplication", str,
        ),
        E("advertised_online_billing_application", "advertisedOnlineBillingApplication", str),
    )

    xs_realm: str = Field(type=str, required=False, mutable=False)
    xs_listening_port: int = Field(type=int, required=False, mutable=False)
    ps_realm: str = Field(type=str, required=False, mutable=False)
    ps_listening_port: int = Field(type=int, required=False, mutable=False)
    ps_relay_through_xs: bool = Field(type=bool, required=False, mutable=False)
    xs_relay_listening_port: int = Field(type=int, required=False, mutable=False)
    tc_timer_seconds: int = Field(type=int, required=False, mutable=False)
    tw_timer_seconds: int = Field(type=int, required=False, mutable=False)
    request_timer_seconds: int = Field(type=int, required=False, mutable=False)
    busy_peer_detection_outstanding_txn_count: int = Field(
        type=int, required=False, mutable=False,
    )
    busy_peer_restore_outstanding_txn_count: int = Field(
        type=int, required=False, mutable=False,
    )
    dynamic_entry_inactivity_timer_hours: int = Field(type=int, required=False, mutable=False)
    advertised_offline_billing_application: str = Field(
        type=str, required=False, mutable=False,
    )
    advertised_online_billing_application: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemBwDiameterPeerAddRequest(OCIRequest):
    """
    Add a static entry in the Diameter Peer Table.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        instance: instance
        identity: identity
        ip_address: ipAddress
        port: port
        enabled: enabled
    """

    _ELEMENTS = (
        E("instance", "instance", str, is_required=True),
        E("identity", "identity", str, is_required=True),
        E("ip_address", "ipAddress", str),
        E("port", "port", int, is_required=True),
        E("enabled", "enabled", bool, is_required=True),
    )

    instance: str = Field(type=str, required=True, mutable=False)
    identity: str = Field(type=str, required=True, mutable=False)
    ip_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=True, mutable=False)
    enabled: bool = Field(type=bool, required=True, mutable=False)


class SystemBwDiameterPeerDeleteRequest(OCIRequest):
    """
    Remove a Diameter peer.

    A peer cannot be removed if is referenced by a Realm Routing Table entry.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        instance: instance
        identity: identity
    """

    _ELEMENTS = (
        E("instance", "instance", str, is_required=True),
        E("identity", "identity", str, is_required=True),
    )

    instance: str = Field(type=str, required=True, mutable=False)
    identity: str = Field(type=str, required=True, mutable=False)


class SystemBwDiameterPeerGetListRequest(OCIRequest):
    """
    Requests the list of Diameter peers.

    The response is either ``SystemBwDiameterPeerGetListResponse()`` or
    ``ErrorResponse()``
    """

    _ELEMENTS = ()


class SystemBwDiameterPeerModifyRequest(OCIRequest):
    """
    Modifies the attributes of an entry in the Diameter Peer Table.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        instance: instance
        identity: identity
        ip_address: ipAddress
        port: port
        enabled: enabled
    """

    _ELEMENTS = (
        E("instance", "instance", str, is_required=True),
        E("identity", "identity", str, is_required=True),
        E("ip_address", "ipAddress", str),
        E("port", "port", int),
        E("enabled", "enabled", bool),
    )

    instance: str = Field(type=str, required=True, mutable=False)
    identity: str = Field(type=str, required=True, mutable=False)
    ip_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    enabled: bool = Field(type=bool, required=False, mutable=False)


class SystemBwDiameterRoutingPeerAddRequest(OCIRequest):
    """
    Add a Diameter routing peer.

    The realm must refer to a Diameter routing realm whose action is relay.  The
    destinationPeerIdentity must refer to an existing Diameter peer whose mode is active.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        instance: instance
        realm: realm
        application_id: applicationId
        identity: identity
        priority: priority
        weight: weight
    """

    _ELEMENTS = (
        E("instance", "instance", str, is_required=True),
        E("realm", "realm", str, is_required=True),
        E("application_id", "applicationId", str, is_required=True),
        E("identity", "identity", str, is_required=True),
        E("priority", "priority", int, is_required=True),
        E("weight", "weight", int, is_required=True),
    )

    instance: str = Field(type=str, required=True, mutable=False)
    realm: str = Field(type=str, required=True, mutable=False)
    application_id: str = Field(type=str, required=True, mutable=False)
    identity: str = Field(type=str, required=True, mutable=False)
    priority: int = Field(type=int, required=True, mutable=False)
    weight: int = Field(type=int, required=True, mutable=False)


class SystemBwDiameterRoutingPeerDeleteRequest(OCIRequest):
    """
    Remove a Diameter routing peer.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        instance: instance
        realm: realm
        application_id: applicationId
        identity: identity
    """

    _ELEMENTS = (
        E("instance", "instance", str, is_required=True),
        E("realm", "realm", str, is_required=True),
        E("application_id", "applicationId", str, is_required=True),
        E("identity", "identity", str, is_required=True),
    )

    instance: str = Field(type=str, required=True, mutable=False)
    realm: str = Field(type=str, required=True, mutable=False)
    application_id: str = Field(type=str, required=True, mutable=False)
    identity: str = Field(type=str, required=True, mutable=False)


class SystemBwDiameterRoutingPeerGetListRequest(OCIRequest):
    """
    Requests the list of Diameter routing peers associated with the specified realm.

    The response is either ``SystemBwDiameterRoutingPeerGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBwDiameterRoutingPeerModifyRequest(OCIRequest):
    """
    Modify a Diameter routing peer.

    The realm must refer to a Diameter routing realm whose action is relay.  The
    destinationPeerIdentity must refer to an existing Diameter peer whose mode is active.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        instance: instance
        realm: realm
        application_id: applicationId
        identity: identity
        priority: priority
        weight: weight
    """

    _ELEMENTS = (
        E("instance", "instance", str, is_required=True),
        E("realm", "realm", str, is_required=True),
        E("application_id", "applicationId", str, is_required=True),
        E("identity", "identity", str, is_required=True),
        E("priority", "priority", int),
        E("weight", "weight", int),
    )

    instance: str = Field(type=str, required=True, mutable=False)
    realm: str = Field(type=str, required=True, mutable=False)
    application_id: str = Field(type=str, required=True, mutable=False)
    identity: str = Field(type=str, required=True, mutable=False)
    priority: int = Field(type=int, required=False, mutable=False)
    weight: int = Field(type=int, required=False, mutable=False)


class SystemBwDiameterRoutingRealmAddRequest(OCIRequest):
    """
    Add a static entry in the Realm Routing Table.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        instance: instance
        realm: realm
        application_id: applicationId
        default: default
    """

    _ELEMENTS = (
        E("instance", "instance", str, is_required=True),
        E("realm", "realm", str, is_required=True),
        E("application_id", "applicationId", str, is_required=True),
        E("default", "default", bool, is_required=True),
    )

    instance: str = Field(type=str, required=True, mutable=False)
    realm: str = Field(type=str, required=True, mutable=False)
    application_id: str = Field(type=str, required=True, mutable=False)
    default: bool = Field(type=bool, required=True, mutable=False)


class SystemBwDiameterRoutingRealmDeleteRequest(OCIRequest):
    """
    Delete a static entry in the Realm Routing Table.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        instance: instance
        realm: realm
        application_id: applicationId
    """

    _ELEMENTS = (
        E("instance", "instance", str, is_required=True),
        E("realm", "realm", str, is_required=True),
        E("application_id", "applicationId", str, is_required=True),
    )

    instance: str = Field(type=str, required=True, mutable=False)
    realm: str = Field(type=str, required=True, mutable=False)
    application_id: str = Field(type=str, required=True, mutable=False)


class SystemBwDiameterRoutingRealmGetListRequest(OCIRequest):
    """
    Requests the list of Diameter routing realms.

    The response is either ``SystemBwDiameterRoutingRealmGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemBwDiameterRoutingRealmModifyRequest(OCIRequest):
    """
    Modify a static entry in the Realm Routing Table.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        instance: instance
        realm: realm
        application_id: applicationId
        default: default
    """

    _ELEMENTS = (
        E("instance", "instance", str, is_required=True),
        E("realm", "realm", str, is_required=True),
        E("application_id", "applicationId", str, is_required=True),
        E("default", "default", bool),
    )

    instance: str = Field(type=str, required=True, mutable=False)
    realm: str = Field(type=str, required=True, mutable=False)
    application_id: str = Field(type=str, required=True, mutable=False)
    default: bool = Field(type=bool, required=False, mutable=False)


class SystemCAPAddACLEntryRequest14(OCIRequest):
    """
    Add an entry to the CAP access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemCAPDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the CAP access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemCAPGetACLListRequest14(OCIRequest):
    """
    Get the CAP access control list.

    The response is either ``SystemCAPGetACLListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCAPModifyACLEntryRequest14(OCIRequest):
    """
    Modify an entry from the CAP access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemCAPParametersGetRequest(OCIRequest):
    """
    Request to get the list of CAP system parameters.

    The response is either ``SystemCAPParametersGetResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemCAPParametersGetRequest14sp3()``
    """

    _ELEMENTS = ()


class SystemCAPParametersGetRequest14sp3(OCIRequest):
    """
    Request to get the list of CAP system parameters.

    The response is either ``SystemCAPParametersGetResponse14sp3()`` or
    ``ErrorResponse()``. Replaced by ``SystemCAPParametersGetRequest19()``
    """

    _ELEMENTS = ()


class SystemCAPParametersGetRequest19(OCIRequest):
    """
    Request to get the list of CAP system parameters.

    The response is either ``SystemCAPParametersGetResponse19()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCAPParametersModifyRequest(OCIRequest):
    """
    Request to modify CAP system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by
    ``SystemCAPParametersModifyRequest19()``

    Attributes:
        server_port: serverPort
        max_client_connections: maxClientConnections
        enable_connection_ping: enableConnectionPing
        connection_ping_interval_minutes: connectionPingIntervalMinutes
        ccc2_server_port: CCC2ServerPort
        ccc2_max_client_connections: CCC2MaxClientConnections
        cap_server_call_center_port: capServerCallCenterPort
        cap_server_call_center_max_client_connections:
            capServerCallCenterMaxClientConnections
    """

    _ELEMENTS = (
        E("server_port", "serverPort", int),
        E("max_client_connections", "maxClientConnections", int),
        E("enable_connection_ping", "enableConnectionPing", bool),
        E("connection_ping_interval_minutes", "connectionPingIntervalMinutes", int),
        E("ccc2_server_port", "CCC2ServerPort", int),
        E("ccc2_max_client_connections", "CCC2MaxClientConnections", int),
        E("cap_server_call_center_port", "capServerCallCenterPort", int),
        E(
            "cap_server_call_center_max_client_connections",
            "capServerCallCenterMaxClientConnections", int,
        ),
    )

    server_port: int = Field(type=int, required=False, mutable=False)
    max_client_connections: int = Field(type=int, required=False, mutable=False)
    enable_connection_ping: bool = Field(type=bool, required=False, mutable=False)
    connection_ping_interval_minutes: int = Field(type=int, required=False, mutable=False)
    ccc2_server_port: int = Field(type=int, required=False, mutable=False)
    ccc2_max_client_connections: int = Field(type=int, required=False, mutable=False)
    cap_server_call_center_port: int = Field(type=int, required=False, mutable=False)
    cap_server_call_center_max_client_connections: int = Field(
        type=int, required=False, mutable=False,
    )


class SystemCAPParametersModifyRequest19(OCIRequest):
    """
    Request to modify CAP system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        server_port: serverPort
        max_client_connections: maxClientConnections
        enable_connection_ping: enableConnectionPing
        connection_ping_interval_minutes: connectionPingIntervalMinutes
        ccc2_server_port: CCC2ServerPort
        ccc2_max_client_connections: CCC2MaxClientConnections
    """

    _ELEMENTS = (
        E("server_port", "serverPort", int),
        E("max_client_connections", "maxClientConnections", int),
        E("enable_connection_ping", "enableConnectionPing", bool),
        E("connection_ping_interval_minutes", "connectionPingIntervalMinutes", int),
        E("ccc2_server_port", "CCC2ServerPort", int),
        E("ccc2_max_client_connections", "CCC2MaxClientConnections", int),
    )

    server_port: int = Field(type=int, required=False, mutable=False)
    max_client_connections: int = Field(type=int, required=False, mutable=False)
    enable_connection_ping: bool = Field(type=bool, required=False, mutable=False)
    connection_ping_interval_minutes: int = Field(type=int, required=False, mutable=False)
    ccc2_server_port: int = Field(type=int, required=False, mutable=False)
    ccc2_max_client_connections: int = Field(type=int, required=False, mutable=False)


class SystemCPEConfigAddFileServerRequest(OCIRequest):
    """
    Add a device CPE config file server.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemCPEConfigAddFileServerRequest14sp6()``

    Attributes:
        device_type: deviceType
        ftp_host_net_address: ftpHostNetAddress
        ftp_user_id: ftpUserId
        ftp_user_password: ftpUserPassword
        cpe_file_directory: cpeFileDirectory
        passive_ftp: passiveFTP
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("ftp_host_net_address", "ftpHostNetAddress", str, is_required=True),
        E("ftp_user_id", "ftpUserId", str, is_required=True),
        E("ftp_user_password", "ftpUserPassword", str, is_required=True),
        E("cpe_file_directory", "cpeFileDirectory", str),
        E("passive_ftp", "passiveFTP", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    ftp_host_net_address: str = Field(type=str, required=True, mutable=False)
    ftp_user_id: str = Field(type=str, required=True, mutable=False)
    ftp_user_password: str = Field(type=str, required=True, mutable=False)
    cpe_file_directory: str = Field(type=str, required=False, mutable=False)
    passive_ftp: bool = Field(type=bool, required=False, mutable=False)


class SystemCPEConfigAddFileServerRequest14sp6(OCIRequest):
    """
    Add a device CPE config file server.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_repository_name: fileRepositoryName
        cpe_file_directory: cpeFileDirectory
        extended_capture_file_repository_name: extendedCaptureFileRepositoryName
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("cpe_file_directory", "cpeFileDirectory", str),
        E("extended_capture_file_repository_name", "extendedCaptureFileRepositoryName", str),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=True, mutable=False)
    cpe_file_directory: str = Field(type=str, required=False, mutable=False)
    extended_capture_file_repository_name: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemCPEConfigDeleteFileServerRequest(OCIRequest):
    """
    Delete a device CPE config file server.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemCPEConfigGetFileServerListRequest(OCIRequest):
    """
    Requests the list of device CPE config file servers.

    The response is either ``SystemCPEConfigGetFileServerListResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemCPEConfigGetFileServerListRequest14sp6()``
    """

    _ELEMENTS = ()


class SystemCPEConfigGetFileServerListRequest14sp6(OCIRequest):
    """
    Requests the list of device CPE config file servers.

    The response is either ``SystemCPEConfigGetFileServerListResponse14sp6()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCPEConfigModifyFileServerRequest(OCIRequest):
    """
    Modify a device CPE config file server.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemCPEConfigModifyFileServerRequest14sp6()``

    Attributes:
        device_type: deviceType
        ftp_host_net_address: ftpHostNetAddress
        ftp_user_id: ftpUserId
        ftp_user_password: ftpUserPassword
        cpe_file_directory: cpeFileDirectory
        passive_ftp: passiveFTP
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("ftp_host_net_address", "ftpHostNetAddress", str),
        E("ftp_user_id", "ftpUserId", str),
        E("ftp_user_password", "ftpUserPassword", str),
        E("cpe_file_directory", "cpeFileDirectory", str),
        E("passive_ftp", "passiveFTP", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    ftp_host_net_address: str = Field(type=str, required=False, mutable=False)
    ftp_user_id: str = Field(type=str, required=False, mutable=False)
    ftp_user_password: str = Field(type=str, required=False, mutable=False)
    cpe_file_directory: str = Field(type=str, required=False, mutable=False)
    passive_ftp: bool = Field(type=bool, required=False, mutable=False)


class SystemCPEConfigModifyFileServerRequest14sp6(OCIRequest):
    """
    Modify a device CPE config file server.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_repository_name: fileRepositoryName
        cpe_file_directory: cpeFileDirectory
        extended_capture_file_repository_name: extendedCaptureFileRepositoryName
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_repository_name", "fileRepositoryName", str),
        E("cpe_file_directory", "cpeFileDirectory", str),
        E("extended_capture_file_repository_name", "extendedCaptureFileRepositoryName", str),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_repository_name: str = Field(type=str, required=False, mutable=False)
    cpe_file_directory: str = Field(type=str, required=False, mutable=False)
    extended_capture_file_repository_name: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemCPEConfigParametersGetRequest(OCIRequest):
    """
    Request to get the list of CPE Config system parameters.

    The response is either ``SystemCPEConfigParametersGetResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemCPEConfigParametersGetRequest14sp6()``
    """

    _ELEMENTS = ()


class SystemCPEConfigParametersGetRequest14sp6(OCIRequest):
    """
    Request to get the list of CPE Config system parameters.

    The response is either ``SystemCPEConfigParametersGetResponse14sp6()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCPEConfigParametersGetRequest20(OCIRequest):
    """
    Request to get the list of CPE Config system parameters.

    The response is either ``SystemCPEConfigParametersGetResponse20()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCPEConfigParametersGetRequest21(OCIRequest):
    """
    Request to get the list of CPE Config system parameters.

    The response is either ``SystemCPEConfigParametersGetResponse21()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCPEConfigParametersModifyRequest(OCIRequest):
    """
    Request to modify CPE Config system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        enable_ip_device_management: enableIPDeviceManagement
        ftp_connect_timeout_seconds: ftpConnectTimeoutSeconds
        ftp_file_transfer_timeout_seconds: ftpFileTransferTimeoutSeconds
        pause_between_file_rebuild_milliseconds: pauseBetweenFileRebuildMilliseconds
        max_busy_time_minutes: maxBusyTimeMinutes
        device_access_app_server_cluster_name: deviceAccessAppServerClusterName
        file_rebuild_immediate: fileRebuildImmediate
        file_rebuild_daily: fileRebuildDaily
        file_rebuild_hourly: fileRebuildHourly
    """

    _ELEMENTS = (
        E("enable_ip_device_management", "enableIPDeviceManagement", bool),
        E("ftp_connect_timeout_seconds", "ftpConnectTimeoutSeconds", int),
        E("ftp_file_transfer_timeout_seconds", "ftpFileTransferTimeoutSeconds", int),
        E(
            "pause_between_file_rebuild_milliseconds",
            "pauseBetweenFileRebuildMilliseconds", int,
        ),
        E("max_busy_time_minutes", "maxBusyTimeMinutes", int),
        E("device_access_app_server_cluster_name", "deviceAccessAppServerClusterName", str),
        E("file_rebuild_immediate", "fileRebuildImmediate", str, is_complex=True),  # unknown
        E("file_rebuild_daily", "fileRebuildDaily", str, is_complex=True),  # unknown
        E("file_rebuild_hourly", "fileRebuildHourly", str, is_complex=True),  # unknown
    )

    enable_ip_device_management: bool = Field(type=bool, required=False, mutable=False)
    ftp_connect_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    ftp_file_transfer_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    pause_between_file_rebuild_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )
    max_busy_time_minutes: int = Field(type=int, required=False, mutable=False)
    device_access_app_server_cluster_name: str = Field(
        type=str, required=False, mutable=False,
    )
    file_rebuild_immediate: str = Field(type=str, required=False, mutable=False)
    file_rebuild_daily: str = Field(type=str, required=False, mutable=False)
    file_rebuild_hourly: str = Field(type=str, required=False, mutable=False)


class SystemCPEConfigParametersModifyRequest20(OCIRequest):
    """
    Request to modify CPE Config system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        enable_ip_device_management: enableIPDeviceManagement
        ftp_connect_timeout_seconds: ftpConnectTimeoutSeconds
        ftp_file_transfer_timeout_seconds: ftpFileTransferTimeoutSeconds
        pause_between_file_rebuild_milliseconds: pauseBetweenFileRebuildMilliseconds
        max_busy_time_minutes: maxBusyTimeMinutes
        device_access_app_server_cluster_name: deviceAccessAppServerClusterName
    """

    _ELEMENTS = (
        E("enable_ip_device_management", "enableIPDeviceManagement", bool),
        E("ftp_connect_timeout_seconds", "ftpConnectTimeoutSeconds", int),
        E("ftp_file_transfer_timeout_seconds", "ftpFileTransferTimeoutSeconds", int),
        E(
            "pause_between_file_rebuild_milliseconds",
            "pauseBetweenFileRebuildMilliseconds", int,
        ),
        E("max_busy_time_minutes", "maxBusyTimeMinutes", int),
        E("device_access_app_server_cluster_name", "deviceAccessAppServerClusterName", str),
    )

    enable_ip_device_management: bool = Field(type=bool, required=False, mutable=False)
    ftp_connect_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    ftp_file_transfer_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    pause_between_file_rebuild_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )
    max_busy_time_minutes: int = Field(type=int, required=False, mutable=False)
    device_access_app_server_cluster_name: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemCPEConfigParametersModifyRequest21(OCIRequest):
    """
    Request to modify CPE Config system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        enable_ip_device_management: enableIPDeviceManagement
        ftp_connect_timeout_seconds: ftpConnectTimeoutSeconds
        ftp_file_transfer_timeout_seconds: ftpFileTransferTimeoutSeconds
        pause_between_file_rebuild_milliseconds: pauseBetweenFileRebuildMilliseconds
        device_access_app_server_cluster_name: deviceAccessAppServerClusterName
        min_time_between_reset_milliseconds: minTimeBetweenResetMilliseconds
        always_push_files_on_rebuild: alwaysPushFilesOnRebuild
        max_file_operation_retry_attempts: maxFileOperationRetryAttempts
        enable_auto_rebuild_config: enableAutoRebuildConfig
        event_queue_size: eventQueueSize
        allow_device_credentials_retrieval: allowDeviceCredentialsRetrieval
    """

    _ELEMENTS = (
        E("enable_ip_device_management", "enableIPDeviceManagement", bool),
        E("ftp_connect_timeout_seconds", "ftpConnectTimeoutSeconds", int),
        E("ftp_file_transfer_timeout_seconds", "ftpFileTransferTimeoutSeconds", int),
        E(
            "pause_between_file_rebuild_milliseconds",
            "pauseBetweenFileRebuildMilliseconds", int,
        ),
        E("device_access_app_server_cluster_name", "deviceAccessAppServerClusterName", str),
        E("min_time_between_reset_milliseconds", "minTimeBetweenResetMilliseconds", int),
        E("always_push_files_on_rebuild", "alwaysPushFilesOnRebuild", bool),
        E("max_file_operation_retry_attempts", "maxFileOperationRetryAttempts", int),
        E("enable_auto_rebuild_config", "enableAutoRebuildConfig", bool),
        E("event_queue_size", "eventQueueSize", int),
        E("allow_device_credentials_retrieval", "allowDeviceCredentialsRetrieval", bool),
    )

    enable_ip_device_management: bool = Field(type=bool, required=False, mutable=False)
    ftp_connect_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    ftp_file_transfer_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    pause_between_file_rebuild_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )
    device_access_app_server_cluster_name: str = Field(
        type=str, required=False, mutable=False,
    )
    min_time_between_reset_milliseconds: int = Field(type=int, required=False, mutable=False)
    always_push_files_on_rebuild: bool = Field(type=bool, required=False, mutable=False)
    max_file_operation_retry_attempts: int = Field(type=int, required=False, mutable=False)
    enable_auto_rebuild_config: bool = Field(type=bool, required=False, mutable=False)
    event_queue_size: int = Field(type=int, required=False, mutable=False)
    allow_device_credentials_retrieval: bool = Field(type=bool, required=False, mutable=False)


class SystemCPEConfigRebuildConfigFileRequest(OCIRequest):
    """
    Rebuild the system default config file for the specified device type.

    If the device type is not specified, all files for all device types in the system are
    rebuilt.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        rebuild_type: rebuildType
        force: force
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str),
        E("rebuild_type", "rebuildType", str),
        E("force", "force", bool),
    )

    device_type: str = Field(type=str, required=False, mutable=False)
    rebuild_type: str = Field(type=str, required=False, mutable=False)
    force: bool = Field(type=bool, required=False, mutable=False)


class SystemCPEConfigRebuildDeviceConfigFileRequest(OCIRequest):
    """
    Rebuild the config file for a specified device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        force: force
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("force", "force", bool),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    force: bool = Field(type=bool, required=False, mutable=False)


class SystemCPEConfigReorderDeviceLinePortsRequest(OCIRequest):
    """
    Reorder the lines of a System 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
    ``SystemAccessDeviceGetRequest16()`` command.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        ordered_line_port_list: orderedLinePortList
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("ordered_line_port_list", "orderedLinePortList", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    ordered_line_port_list: str = Field(type=str, required=True, mutable=False)


class SystemCPEConfigResetDeviceRequest(OCIRequest):
    """
    Reset a specific system device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemCPEConfigResetDeviceTypeRequest(OCIRequest):
    """
    Reset all the devices of the specified device type in the system.

    If the device type is not specified, all device in the system are reset.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str),
    )

    device_type: str = Field(type=str, required=False, mutable=False)


class SystemCPEConfigSetConfigFileRequest(OCIRequest):
    """
    Request to set a new system default configuration file for a device type.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        config_file: configFile
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("config_file", "configFile", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    config_file: str = Field(type=str, required=True, mutable=False)


class SystemCallCenterEnhancedReportingBrandingGetRequest(OCIRequest):
    """
    Request to get the system branding information.

    The response is either ``SystemCallCenterEnhancedReportingBrandingGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallCenterEnhancedReportingDataTemplateGetListRequest(OCIRequest):
    """
    Request to get the list of data template and the corresponding information in the
    system.

    The response is either a
    ``SystemCallCenterEnhancedReportingDataTemplateGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallCenterEnhancedReportingGetRequest(OCIRequest):
    """
    Request to get the call center enhanced reporting system settings.

    The response is either a ``SystemCallCenterEnhancedReportingGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallCenterEnhancedReportingModifyRequest(OCIRequest):
    """
    Modify the system settings for call center enhanced reporting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        archive_reports: archiveReports
        report_application_url: reportApplicationURL
        repository_application_url: repositoryApplicationURL
    """

    _ELEMENTS = (
        E("archive_reports", "archiveReports", bool),
        E("report_application_url", "reportApplicationURL", str),
        E("repository_application_url", "repositoryApplicationURL", str),
    )

    archive_reports: bool = Field(type=bool, required=False, mutable=False)
    report_application_url: str = Field(type=str, required=False, mutable=False)
    repository_application_url: str = Field(type=str, required=False, mutable=False)


class SystemCallCenterEnhancedReportingReportTemplateDeleteRequest(OCIRequest):
    """
    Request to delete a system level call center report template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCallCenterEnhancedReportingReportTemplateGetListRequest(OCIRequest):
    """
    Request to get system level call center report template list.

    The response is either a
    ``SystemCallCenterEnhancedReportingReportTemplateGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallCenterEnhancedReportingReportTemplateGetRequest(OCIRequest):
    """
    Request to get a system level call center report template.

    The response is either a
    ``SystemCallCenterEnhancedReportingReportTemplateGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCallCenterEnhancedReportingScheduledReportGetReportTemplateUsageListRequest(OCIRequest):
    """
    Request to get all the call center reporting scheduled report in the system that uses
    a given system level report template.

    The response is either a
    ``SystemCallCenterEnhancedReportingScheduledReportGetReportTemplateUsageListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCallCenterEnhancedReportingScheduledTaskParametersGetRequest(OCIRequest):
    """
    Request to get the system settings for the call center enhanced reporting scheduling
    tasks.

    The response is either a
    ``SystemCallCenterEnhancedReportingScheduledTaskParametersGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallCenterEnhancedReportingScheduledTaskParametersModifyRequest(OCIRequest):
    """
    Modify the system settings for the call center enhanced reporting scheduling tasks.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        scheduled_report_search_interval_minutes: scheduledReportSearchIntervalMinutes
        maximum_scheduled_reports_per_interval: maximumScheduledReportsPerInterval
        delete_scheduled_report_days_after_completion:
            deleteScheduledReportDaysAfterCompletion
    """

    _ELEMENTS = (
        E(
            "scheduled_report_search_interval_minutes",
            "scheduledReportSearchIntervalMinutes", int,
        ),
        E(
            "maximum_scheduled_reports_per_interval",
            "maximumScheduledReportsPerInterval", int,
        ),
        E(
            "delete_scheduled_report_days_after_completion",
            "deleteScheduledReportDaysAfterCompletion", int,
        ),
    )

    scheduled_report_search_interval_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    maximum_scheduled_reports_per_interval: int = Field(
        type=int, required=False, mutable=False,
    )
    delete_scheduled_report_days_after_completion: int = Field(
        type=int, required=False, mutable=False,
    )


class SystemCallCenterGetRequest(OCIRequest):
    """
    Request the system level data associated with Call Center.

    The response is either a ``SystemCallCenterGetResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``SystemCallCenterGetRequest14sp9()``
    """

    _ELEMENTS = ()


class SystemCallCenterGetRequest14sp9(OCIRequest):
    """
    Request the system level data associated with Call Center.

    The response is either a ``SystemCallCenterGetResponse14sp9()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemCallCenterGetRequest16()``
    """

    _ELEMENTS = ()


class SystemCallCenterGetRequest16(OCIRequest):
    """
    Request the system level data associated with Call Center.

    The response is either a ``SystemCallCenterGetResponse16()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemCallCenterGetRequest17()``
    """

    _ELEMENTS = ()


class SystemCallCenterGetRequest17(OCIRequest):
    """
    Request the system level data associated with Call Center.

    The response is either a ``SystemCallCenterGetResponse17()`` or an
    ``ErrorResponse()``. Replaced by ``SystemCallCenterGetRequest17sp4()``.
    """

    _ELEMENTS = ()


class SystemCallCenterGetRequest17sp4(OCIRequest):
    """
    Request the system level data associated with Call Center.

    The response is either a ``SystemCallCenterGetResponse17sp4()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemCallCenterGetRequest19()``
    """

    _ELEMENTS = ()


class SystemCallCenterGetRequest19(OCIRequest):
    """
    Request the system level data associated with Call Center.

    The response is either a ``SystemCallCenterGetResponse19()`` or an
    ``ErrorResponse()``. Replaced by ``SystemCallCenterGetRequest21()``.
    """

    _ELEMENTS = ()


class SystemCallCenterGetRequest21(OCIRequest):
    """
    Request the system level data associated with Call Center.

    The response is either a ``SystemCallCenterGetResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallCenterModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Call Center.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        default_from_address: defaultFromAddress
        statistics_sampling_period_minutes: statisticsSamplingPeriodMinutes
        default_enable_guard_timer: defaultEnableGuardTimer
        default_guard_timer_seconds: defaultGuardTimerSeconds
        force_agent_unavailable_on_dnd_activation: forceAgentUnavailableOnDNDActivation
        force_agent_unavailable_on_personal_calls: forceAgentUnavailableOnPersonalCalls
        force_agent_unavailable_on_bounced_call_limit:
            forceAgentUnavailableOnBouncedCallLimit
        number_consecutive_bounced_calls_to_force_agent_unavailable:
            numberConsecutiveBouncedCallsToForceAgentUnavailable
        force_agent_unavailable_on_not_reachable: forceAgentUnavailableOnNotReachable
        default_play_ring_when_offer_call: defaultPlayRingWhenOfferCall
        uniform_call_distribution_policy_scope: uniformCallDistributionPolicyScope
        call_handling_sampling_period_minutes: callHandlingSamplingPeriodMinutes
        call_handling_minimum_sampling_size: callHandlingMinimumSamplingSize
        play_tone_to_agent_for_emergency_call: playToneToAgentForEmergencyCall
        emergency_call_clid_prefix: emergencyCallCLIDPrefix
        threshold_crossing_notification_email_guard_timer_seconds:
            thresholdCrossingNotificationEmailGuardTimerSeconds
        allow_agent_device_initiated_forward: allowAgentDeviceInitiatedForward
    """

    _ELEMENTS = (
        E("default_from_address", "defaultFromAddress", str),
        E("statistics_sampling_period_minutes", "statisticsSamplingPeriodMinutes", int),
        E("default_enable_guard_timer", "defaultEnableGuardTimer", bool),
        E("default_guard_timer_seconds", "defaultGuardTimerSeconds", int),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation", bool,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls", bool,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit", bool,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable", int,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable", bool,
        ),
        E("default_play_ring_when_offer_call", "defaultPlayRingWhenOfferCall", bool),
        E(
            "uniform_call_distribution_policy_scope",
            "uniformCallDistributionPolicyScope", str,
        ),
        E("call_handling_sampling_period_minutes", "callHandlingSamplingPeriodMinutes", int),
        E("call_handling_minimum_sampling_size", "callHandlingMinimumSamplingSize", int),
        E("play_tone_to_agent_for_emergency_call", "playToneToAgentForEmergencyCall", bool),
        E("emergency_call_clid_prefix", "emergencyCallCLIDPrefix", str),
        E(
            "threshold_crossing_notification_email_guard_timer_seconds",
            "thresholdCrossingNotificationEmailGuardTimerSeconds", int,
        ),
        E("allow_agent_device_initiated_forward", "allowAgentDeviceInitiatedForward", bool),
    )

    default_from_address: str = Field(type=str, required=False, mutable=False)
    statistics_sampling_period_minutes: int = Field(type=int, required=False, mutable=False)
    default_enable_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    default_guard_timer_seconds: int = Field(type=int, required=False, mutable=False)
    force_agent_unavailable_on_dnd_activation: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_personal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_bounced_call_limit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    number_consecutive_bounced_calls_to_force_agent_unavailable: int = Field(
        type=int, required=False, mutable=False,
    )
    force_agent_unavailable_on_not_reachable: bool = Field(
        type=bool, required=False, mutable=False,
    )
    default_play_ring_when_offer_call: bool = Field(type=bool, required=False, mutable=False)
    uniform_call_distribution_policy_scope: str = Field(
        type=str, required=False, mutable=False,
    )
    call_handling_sampling_period_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    call_handling_minimum_sampling_size: int = Field(type=int, required=False, mutable=False)
    play_tone_to_agent_for_emergency_call: bool = Field(
        type=bool, required=False, mutable=False,
    )
    emergency_call_clid_prefix: str = Field(type=str, required=False, mutable=False)
    threshold_crossing_notification_email_guard_timer_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    allow_agent_device_initiated_forward: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCallCenterReportingServerGetListRequest(OCIRequest):
    """
    Request to get a list of Call Center Reporting Server.

    The response is either ``SystemCallCenterReportingServerGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallMeNowGetRequest(OCIRequest):
    """
    Request the system level data associated with Call Me Now service.

    The response is either a ``SystemCallMeNowGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallMeNowModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Call me now service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        passcode_length: passcodeLength
        passcode_timeout_seconds: passcodeTimeoutSeconds
    """

    _ELEMENTS = (
        E("passcode_length", "passcodeLength", int),
        E("passcode_timeout_seconds", "passcodeTimeoutSeconds", int),
    )

    passcode_length: int = Field(type=int, required=False, mutable=False)
    passcode_timeout_seconds: int = Field(type=int, required=False, mutable=False)


class SystemCallNotifyGetRequest(OCIRequest):
    """
    Request the system level data associated with Call Notify.

    The response is either a ``SystemCallNotifyGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallNotifyModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Call Notify.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        default_from_address: defaultFromAddress
        use_short_subject_line: useShortSubjectLine
        use_dn_in_mail_body: useDnInMailBody
    """

    _ELEMENTS = (
        E("default_from_address", "defaultFromAddress", str),
        E("use_short_subject_line", "useShortSubjectLine", bool),
        E("use_dn_in_mail_body", "useDnInMailBody", bool),
    )

    default_from_address: str = Field(type=str, required=False, mutable=False)
    use_short_subject_line: bool = Field(type=bool, required=False, mutable=False)
    use_dn_in_mail_body: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingGetPolicyRequest14(OCIRequest):
    """
    Request the system level data associated with Call Processing Policy.

    The response is either a ``SystemCallProcessingGetPolicyResponse14()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest14sp1(OCIRequest):
    """
    Request the system level data associated with Call Processing Policy.

    The response is either a ``SystemCallProcessingGetPolicyResponse14sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest14sp4(OCIRequest):
    """
    Request the system level data associated with Call Processing Policy.

    The response is either a ``SystemCallProcessingGetPolicyResponse14sp4()`` or an
    ``ErrorResponse()``.

    Replaced By : ``SystemCallProcessingGetPolicyRequest15()``
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest14sp7(OCIRequest):
    """
    Request the system level data associated with Call Processing Policy.

    The response is either a ``SystemCallProcessingGetPolicyResponse14sp7()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemCallProcessingGetPolicyRequest16()``
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest15(OCIRequest):
    """
    Request the system level data associated with Call Processing Policy.

    The response is either a ``SystemCallProcessingGetPolicyResponse15()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemCallProcessingGetPolicyRequest16()``
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest15sp2(OCIRequest):
    """
    Request the system level data associated with Call Processing Policy.

    The response is either a ``SystemCallProcessingGetPolicyResponse15sp2()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest16(OCIRequest):
    """
    Request the system level data associated with Call Processing Policy.

    The response is either a ``SystemCallProcessingGetPolicyResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest16sp2(OCIRequest):
    """
    Request the system level data associated with Call Processing Policy.

    The response is either a ``SystemCallProcessingGetPolicyResponse16sp2()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest17(OCIRequest):
    """
    The response is either a ``SystemCallProcessingGetPolicyResponse17()`` or an
    ``ErrorResponse()``.

    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest17sp3(OCIRequest):
    """
    Request the system level data associated with Call Processing Policy.

    The response is either a ``SystemCallProcessingGetPolicyResponse17sp3()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest17sp4(OCIRequest):
    """
    The response is either a ``SystemCallProcessingGetPolicyResponse17sp4()`` or an
    ``ErrorResponse()``.

    Replaced By : ``SystemCallProcessingGetPolicyRequest18sp1()``
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest18sp1(OCIRequest):
    """
    The response is either a ``SystemCallProcessingGetPolicyResponse18sp1()`` or an
    ``ErrorResponse()``.

    Replaced by: ``SystemCallProcessingGetPolicyRequest19sp1()``
    """

    _ELEMENTS = ()


class SystemCallProcessingGetPolicyRequest19sp1(OCIRequest):
    """
    The response is either a ``SystemCallProcessingGetPolicyResponse19sp1()`` or an
    ``ErrorResponse()``.

    """

    _ELEMENTS = ()


class SystemCallProcessingModifyPolicyRequest14(OCIRequest):
    """
    Modify the system level data associated with Call Processing Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By : ``SystemCallProcessingModifyPolicyRequest15()``

    Attributes:
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        network_usage_selection: networkUsageSelection
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        enforce_enterprise_calling_line_identity_restriction:
            enforceEnterpriseCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_external_calls_via_private_dialing_plan:
            overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        conference_uri: conferenceURI
        max_conference_parties: maxConferenceParties
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
        clid_policy: clidPolicy
        emergency_clid_policy: emergencyClidPolicy
        allow_alternate_numbers_for_redirecting_identity:
            allowAlternateNumbersForRedirectingIdentity
    """

    _ELEMENTS = (
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("network_usage_selection", "networkUsageSelection", str),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_external_calls_via_private_dialing_plan",
            "overrideCLIDRestrictionForExternalCallsViaPrivateDialingPlan", bool,
        ),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E("conference_uri", "conferenceURI", str),
        E("max_conference_parties", "maxConferenceParties", int),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
    )

    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_external_calls_via_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    conference_uri: str = Field(type=str, required=False, mutable=False)
    max_conference_parties: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCallProcessingModifyPolicyRequest15(OCIRequest):
    """
    Modify the system level data associated with Call Processing Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: enableDialableCallerID
    allowConfigurableCLIDForRedirectingIdentity enterpriseCallsCLIDPolicy
    enterpriseGroupCallsCLIDPolicy serviceProviderGroupCallsCLIDPolicy

    Attributes:
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        network_usage_selection: networkUsageSelection
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        enforce_enterprise_calling_line_identity_restriction:
            enforceEnterpriseCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_private_call_category:
            overrideCLIDRestrictionForPrivateCallCategory
        use_enterprise_clid_for_private_call_category:
            useEnterpriseCLIDForPrivateCallCategory
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        conference_uri: conferenceURI
        max_conference_parties: maxConferenceParties
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
        clid_policy: clidPolicy
        emergency_clid_policy: emergencyClidPolicy
        allow_alternate_numbers_for_redirecting_identity:
            allowAlternateNumbersForRedirectingIdentity
        enable_dialable_caller_id: enableDialableCallerID
        block_calling_name_for_external_calls: blockCallingNameForExternalCalls
        allow_configurable_clid_for_redirecting_identity:
            allowConfigurableCLIDForRedirectingIdentity
        enterprise_calls_clid_policy: enterpriseCallsCLIDPolicy
        enterprise_group_calls_clid_policy: enterpriseGroupCallsCLIDPolicy
        service_provider_group_calls_clid_policy: serviceProviderGroupCallsCLIDPolicy
    """

    _ELEMENTS = (
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("network_usage_selection", "networkUsageSelection", str),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E("conference_uri", "conferenceURI", str),
        E("max_conference_parties", "maxConferenceParties", int),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
    )

    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    conference_uri: str = Field(type=str, required=False, mutable=False)
    max_conference_parties: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemCallProcessingPolicyProfileAddRequest(OCIRequest):
    """
    Add a call processing policy profile to system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``SystemCallProcessingPolicyProfileAddRequest20()``.

    Attributes:
        name: name
        description: description
        assigned_subscriber_type: assignedSubscriberType
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("assigned_subscriber_type", "assignedSubscriberType", str, is_array=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    assigned_subscriber_type: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemCallProcessingPolicyProfileAddRequest20(OCIRequest):
    """
    Add a call processing policy profile to system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
        assigned_subscriber_type: assignedSubscriberType
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("assigned_subscriber_type", "assignedSubscriberType", str, is_array=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    assigned_subscriber_type: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemCallProcessingPolicyProfileAddRequest21(OCIRequest):
    """
    Add a call processing policy profile to system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
        assigned_subscriber_type: assignedSubscriberType
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("assigned_subscriber_type", "assignedSubscriberType", str, is_array=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    assigned_subscriber_type: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemCallProcessingPolicyProfileAutoAttendantProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Auto Attendant
    subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileAutoAttendantProfileGetRequestResponse()`` or an
    ``ErrorResponse()``. The response contains the call processing policy profile setting
    for Auto Attendant.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileAutoAttendantProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileBroadWorksAnywhereProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile BroadWorks
    Anywhere subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileBroadWorksAnywhereProfileGetRequestResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileBroadWorksAnywhereProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileCallCenterProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Call Center
    subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileCallCenterProfileGetRequestResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileCallCenterProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileCollaborateProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Collaborate
    subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileCollaborateProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileCollaborateProfileModifyRequest(OCIRequest):
    """
    Request to get to modify the call processing policy profile collaborate subscriber
    type profile.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
        use_clid_policy: useCLIDPolicy
        clid_policy: clidPolicy
        emergency_clid_policy: emergencyClidPolicy
        allow_alternate_numbers_for_redirecting_identity:
            allowAlternateNumbersForRedirectingIdentity
        use_group_name: useGroupName
        block_calling_name_for_external_calls: blockCallingNameForExternalCalls
        allow_configurable_clid_for_redirecting_identity:
            allowConfigurableCLIDForRedirectingIdentity
        allow_department_clid_name_override: allowDepartmentCLIDNameOverride
        enterprise_calls_clid_policy: enterpriseCallsCLIDPolicy
        enterprise_group_calls_clid_policy: enterpriseGroupCallsCLIDPolicy
        service_provider_group_calls_clid_policy: serviceProviderGroupCallsCLIDPolicy
        use_call_limits_policy: useCallLimitsPolicy
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        max_redirection_depth: maxRedirectionDepth
        use_translation_routing_policy: useTranslationRoutingPolicy
        network_usage_selection: networkUsageSelection
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        enforce_enterprise_calling_line_identity_restriction:
            enforceEnterpriseCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_private_call_category:
            overrideCLIDRestrictionForPrivateCallCategory
        use_enterprise_clid_for_private_call_category:
            useEnterpriseCLIDForPrivateCallCategory
        use_incoming_clid_policy: useIncomingCLIDPolicy
        enable_dialable_caller_id: enableDialableCallerID
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileDeleteRequest(OCIRequest):
    """
    Delete a call processing policy profile from system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileFindMeFollowMeProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Find-me/Follow-
    me subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileFindMeFollowMeProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileFindMeFollowMeProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileFlexibleSeatingHostProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Flexible Seating
    Host subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileFlexibleSeatingHostProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileFlexibleSeatingHostProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCallProcessingPolicyProfileGetAssignedNCOSListRequest(OCIRequest):
    """
    Request a list of NCOSs that have a given CallP Policy Profile assigned.

    The response is either a
    ``SystemCallProcessingPolicyProfileGetAssignedNCOSListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        profile_name: profileName
    """

    _ELEMENTS = (
        E("profile_name", "profileName", str, is_required=True),
    )

    profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileGetListRequest(OCIRequest):
    """
    Get the list of all Call Processing Policy Profiles.

    The response is either a ``SystemCallProcessingPolicyProfileGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallProcessingPolicyProfileGetRequest(OCIRequest):
    """
    Request to get a call processing policy profile in system.

    The response is either a ``SystemCallProcessingPolicyProfileGetResponse()`` or an
    ``ErrorResponse()``. Replaced by ``SystemCallProcessingPolicyProfileGetRequest20()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileGetRequest20(OCIRequest):
    """
    Request to get a call processing policy profile in system.

    The response is either a ``SystemCallProcessingPolicyProfileGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileGetRequest21(OCIRequest):
    """
    Request to get a call processing policy profile in system.

    The response is either a ``SystemCallProcessingPolicyProfileGetResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileGroupPagingProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Group Paging
    subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileGroupPagingProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileGroupPagingProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCallProcessingPolicyProfileHuntGroupProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Hunt Group
    subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileHuntGroupProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileHuntGroupProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileInstantGroupCallProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Instant Group
    Call subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileInstantGroupCallProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileInstantGroupCallProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCallProcessingPolicyProfileMeetMeConferencingProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Meet-Me
    Conferencing subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileMeetMeConferencingProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileMeetMeConferencingProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileRoutePointProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Route Point
    subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileRoutePointProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileRoutePointProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileTrunkGroupPilotProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Trunk Group
    Pilot user subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileTrunkGroupPilotProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileTrunkGroupPilotProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_media_policy", "useMediaPolicy", bool),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_media_policy: bool = Field(type=bool, required=False, mutable=False)
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileUserProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile user subscriber
    type profile.

    The response is either a ``SystemCallProcessingPolicyProfileUserProfileGetResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileUserProfileModifyRequest(OCIRequest):
    """
    Modify a call processing policy profile user subscriber type profile in system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
        use_clid_policy: useCLIDPolicy
        clid_policy: clidPolicy
        emergency_clid_policy: emergencyClidPolicy
        allow_alternate_numbers_for_redirecting_identity:
            allowAlternateNumbersForRedirectingIdentity
        use_group_name: useGroupName
        block_calling_name_for_external_calls: blockCallingNameForExternalCalls
        allow_configurable_clid_for_redirecting_identity:
            allowConfigurableCLIDForRedirectingIdentity
        allow_department_clid_name_override: allowDepartmentCLIDNameOverride
        enterprise_calls_clid_policy: enterpriseCallsCLIDPolicy
        enterprise_group_calls_clid_policy: enterpriseGroupCallsCLIDPolicy
        service_provider_group_calls_clid_policy: serviceProviderGroupCallsCLIDPolicy
        use_media_policy: useMediaPolicy
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        use_call_limits_policy: useCallLimitsPolicy
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_translation_routing_policy: useTranslationRoutingPolicy
        network_usage_selection: networkUsageSelection
        enable_enterprise_extension_dialing: enableEnterpriseExtensionDialing
        enforce_group_calling_line_identity_restriction:
            enforceGroupCallingLineIdentityRestriction
        enforce_enterprise_calling_line_identity_restriction:
            enforceEnterpriseCallingLineIdentityRestriction
        allow_enterprise_group_call_typing_for_private_dialing_plan:
            allowEnterpriseGroupCallTypingForPrivateDialingPlan
        allow_enterprise_group_call_typing_for_public_dialing_plan:
            allowEnterpriseGroupCallTypingForPublicDialingPlan
        override_clid_restriction_for_private_call_category:
            overrideCLIDRestrictionForPrivateCallCategory
        use_enterprise_clid_for_private_call_category:
            useEnterpriseCLIDForPrivateCallCategory
        use_incoming_clid_policy: useIncomingCLIDPolicy
        enable_dialable_caller_id: enableDialableCallerID
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_media_policy", "useMediaPolicy", bool),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_media_policy: bool = Field(type=bool, required=False, mutable=False)
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallProcessingPolicyProfileVoicePortalProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile Voice Portal
    subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileVoicePortalProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileVoicePortalProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCallProcessingPolicyProfileVoiceXMLProfileGetRequest(OCIRequest):
    """
    Request to get the configuration for a call processing policy profile VoiceXML
    subscriber type profile.

    The response is either a
    ``SystemCallProcessingPolicyProfileVoiceXMLProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)


class SystemCallProcessingPolicyProfileVoiceXMLProfileModifyRequest(OCIRequest):
    _ELEMENTS = (
        E(
            "call_processing_policy_profile_name", "callProcessingPolicyProfileName", str,
            is_required=True,
        ),
        E("use_clid_policy", "useCLIDPolicy", bool),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
        E("enterprise_calls_clid_policy", "enterpriseCallsCLIDPolicy", str),
        E("enterprise_group_calls_clid_policy", "enterpriseGroupCallsCLIDPolicy", str),
        E(
            "service_provider_group_calls_clid_policy",
            "serviceProviderGroupCallsCLIDPolicy", str,
        ),
        E("use_call_limits_policy", "useCallLimitsPolicy", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E("use_translation_routing_policy", "useTranslationRoutingPolicy", bool),
        E("network_usage_selection", "networkUsageSelection", str),
        E("enable_enterprise_extension_dialing", "enableEnterpriseExtensionDialing", bool),
        E(
            "enforce_group_calling_line_identity_restriction",
            "enforceGroupCallingLineIdentityRestriction", bool,
        ),
        E(
            "enforce_enterprise_calling_line_identity_restriction",
            "enforceEnterpriseCallingLineIdentityRestriction", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_private_dialing_plan",
            "allowEnterpriseGroupCallTypingForPrivateDialingPlan", bool,
        ),
        E(
            "allow_enterprise_group_call_typing_for_public_dialing_plan",
            "allowEnterpriseGroupCallTypingForPublicDialingPlan", bool,
        ),
        E(
            "override_clid_restriction_for_private_call_category",
            "overrideCLIDRestrictionForPrivateCallCategory", bool,
        ),
        E(
            "use_enterprise_clid_for_private_call_category",
            "useEnterpriseCLIDForPrivateCallCategory", bool,
        ),
        E("use_incoming_clid_policy", "useIncomingCLIDPolicy", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
    )

    call_processing_policy_profile_name: str = Field(type=str, required=True, mutable=False)
    use_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enterprise_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    enterprise_group_calls_clid_policy: str = Field(type=str, required=False, mutable=False)
    service_provider_group_calls_clid_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_call_limits_policy: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_translation_routing_policy: bool = Field(type=bool, required=False, mutable=False)
    network_usage_selection: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_extension_dialing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_group_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enforce_enterprise_calling_line_identity_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_private_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_enterprise_group_call_typing_for_public_dialing_plan: bool = Field(
        type=bool, required=False, mutable=False,
    )
    override_clid_restriction_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_enterprise_clid_for_private_call_category: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_incoming_clid_policy: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)


class SystemCallRecordingAddPlatformRequest(OCIRequest):
    """
    Add a Call Recording platform.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        net_address: netAddress
        port: port
        media_stream: mediaStream
        transport_type: transportType
        description: description
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int, is_required=True),
        E("media_stream", "mediaStream", str, is_required=True),
        E("transport_type", "transportType", str, is_required=True),
        E("description", "description", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=True, mutable=False)
    media_stream: str = Field(type=str, required=True, mutable=False)
    transport_type: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemCallRecordingAddPlatformRequest19(OCIRequest):
    """
    Add a Call Recording platform.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        net_address: netAddress
        port: port
        media_stream: mediaStream
        transport_type: transportType
        description: description
        schema_version: schemaVersion
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int, is_required=True),
        E("media_stream", "mediaStream", str, is_required=True),
        E("transport_type", "transportType", str, is_required=True),
        E("description", "description", str),
        E("schema_version", "schemaVersion", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=True, mutable=False)
    media_stream: str = Field(type=str, required=True, mutable=False)
    transport_type: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    schema_version: str = Field(type=str, required=True, mutable=False)


class SystemCallRecordingAddPlatformRequest20(OCIRequest):
    """
    Add a Call Recording platform.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        net_address: netAddress
        port: port
        media_stream: mediaStream
        transport_type: transportType
        description: description
        schema_version: schemaVersion
        support_video_recording: supportVideoRecording
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int, is_required=True),
        E("media_stream", "mediaStream", str, is_required=True),
        E("transport_type", "transportType", str, is_required=True),
        E("description", "description", str),
        E("schema_version", "schemaVersion", str, is_required=True),
        E("support_video_recording", "supportVideoRecording", bool, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=True, mutable=False)
    media_stream: str = Field(type=str, required=True, mutable=False)
    transport_type: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    schema_version: str = Field(type=str, required=True, mutable=False)
    support_video_recording: bool = Field(type=bool, required=True, mutable=False)


class SystemCallRecordingDeletePlatformRequest(OCIRequest):
    """
    Delete a Call Recording platform.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCallRecordingGetPlatformListRequest(OCIRequest):
    """
    Get list of Call Recording platforms.

    The response is either ``SystemCallRecordingGetPlatformListResponse()`` or
    ``ErrorResponse()``. The possible values for "Support Video Rec" can be either true or
    false.  Schema version values include: 1.0, 2.0, 3.0
    """

    _ELEMENTS = ()


class SystemCallRecordingGetPlatformUsageRequest(OCIRequest):
    """
    Get the list of groups currently associated to the specified Call Recording platform.

    The response is either ``SystemCallRecordingGetPlatformUsageResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCallRecordingGetRequest(OCIRequest):
    """
    Request the system level data associated with Call Recording.

    The response is either a ``SystemCallRecordingGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallRecordingModifyPlatformRequest(OCIRequest):
    """
    Modify the specified Call Recording platform.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        net_address: netAddress
        port: port
        media_stream: mediaStream
        become_system_default: becomeSystemDefault
        transport_type: transportType
        description: description
        schema_version: schemaVersion
        support_video_recording: supportVideoRecording
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("net_address", "netAddress", str),
        E("port", "port", int),
        E("media_stream", "mediaStream", str),
        E("become_system_default", "becomeSystemDefault", bool),
        E("transport_type", "transportType", str),
        E("description", "description", str),
        E("schema_version", "schemaVersion", str),
        E("support_video_recording", "supportVideoRecording", bool),
    )

    name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    media_stream: str = Field(type=str, required=False, mutable=False)
    become_system_default: bool = Field(type=bool, required=False, mutable=False)
    transport_type: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    schema_version: str = Field(type=str, required=False, mutable=False)
    support_video_recording: bool = Field(type=bool, required=False, mutable=False)


class SystemCallRecordingModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Call Recording.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        continue_call_after_recording_failure: continueCallAfterRecordingFailure
        refresh_period_seconds: refreshPeriodSeconds
        max_consecutive_failures: maxConsecutiveFailures
        max_response_wait_time_milliseconds: maxResponseWaitTimeMilliseconds
        continue_call_after_video_recording_failure:
            continueCallAfterVideoRecordingFailure
    """

    _ELEMENTS = (
        E("continue_call_after_recording_failure", "continueCallAfterRecordingFailure", bool),
        E("refresh_period_seconds", "refreshPeriodSeconds", int),
        E("max_consecutive_failures", "maxConsecutiveFailures", int),
        E("max_response_wait_time_milliseconds", "maxResponseWaitTimeMilliseconds", int),
        E(
            "continue_call_after_video_recording_failure",
            "continueCallAfterVideoRecordingFailure", bool,
        ),
    )

    continue_call_after_recording_failure: bool = Field(
        type=bool, required=False, mutable=False,
    )
    refresh_period_seconds: int = Field(type=int, required=False, mutable=False)
    max_consecutive_failures: int = Field(type=int, required=False, mutable=False)
    max_response_wait_time_milliseconds: int = Field(type=int, required=False, mutable=False)
    continue_call_after_video_recording_failure: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCallReturnGetRequest(OCIRequest):
    """
    Request the system level data associated with Call Return.

    The response is either a ``SystemCallReturnGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallReturnModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Call Return.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        two_level_activation: twoLevelActivation
        provide_date: provideDate
        last_unanswered_call_only: lastUnansweredCallOnly
        confirmation_key: confirmationKey
        allow_restricted_number: allowRestrictedNumber
        delete_number_after_answered_call_return: deleteNumberAfterAnsweredCallReturn
    """

    _ELEMENTS = (
        E("two_level_activation", "twoLevelActivation", bool),
        E("provide_date", "provideDate", bool),
        E("last_unanswered_call_only", "lastUnansweredCallOnly", bool),
        E("confirmation_key", "confirmationKey", str),
        E("allow_restricted_number", "allowRestrictedNumber", bool),
        E(
            "delete_number_after_answered_call_return",
            "deleteNumberAfterAnsweredCallReturn", bool,
        ),
    )

    two_level_activation: bool = Field(type=bool, required=False, mutable=False)
    provide_date: bool = Field(type=bool, required=False, mutable=False)
    last_unanswered_call_only: bool = Field(type=bool, required=False, mutable=False)
    confirmation_key: str = Field(type=str, required=False, mutable=False)
    allow_restricted_number: bool = Field(type=bool, required=False, mutable=False)
    delete_number_after_answered_call_return: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCallTypeAddMappingRequest(OCIRequest):
    """
    Add a system call type mapping.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        country_code: countryCode
        digit_map: digitMap
        call_type: callType
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str, is_required=True),
        E("digit_map", "digitMap", str, is_required=True),
        E("call_type", "callType", str, is_required=True),
    )

    country_code: str = Field(type=str, required=True, mutable=False)
    digit_map: str = Field(type=str, required=True, mutable=False)
    call_type: str = Field(type=str, required=True, mutable=False)


class SystemCallTypeDeleteMappingRequest(OCIRequest):
    """
    Delete a system call type mapping.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        country_code: countryCode
        digit_map: digitMap
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str, is_required=True),
        E("digit_map", "digitMap", str, is_required=True),
    )

    country_code: str = Field(type=str, required=True, mutable=False)
    digit_map: str = Field(type=str, required=True, mutable=False)


class SystemCallTypeGetListRequest(OCIRequest):
    """
    Get a list of system call types.

    The response is either ``SystemCallTypeGetListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallTypeGetMappingListRequest(OCIRequest):
    """
    Get a list of system call type mappings.

    The response is either ``SystemCallTypeGetMappingListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        country_code: countryCode
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str),
    )

    country_code: str = Field(type=str, required=False, mutable=False)


class SystemCallWaitingGetRequest(OCIRequest):
    """
    Request the system level data associated with Call Waiting.

    The response is either a ``SystemCallWaitingGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallWaitingModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Call Waiting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        play_distinctive_ringback: playDistinctiveRingback
    """

    _ELEMENTS = (
        E("play_distinctive_ringback", "playDistinctiveRingback", bool),
    )

    play_distinctive_ringback: bool = Field(type=bool, required=False, mutable=False)


class SystemCallingNameRetrievalGetRequest14(OCIRequest):
    """
    Request the system's calling name retrieval attributes.

    The response is either a ``SystemCallingNameRetrievalGetResponse14()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallingNameRetrievalGetRequest16sp1(OCIRequest):
    """
    Request the system's calling name retrieval attributes.

    The response is either a ``SystemCallingNameRetrievalGetResponse16sp1()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemCallingNameRetrievalGetRequest17sp4()``
    """

    _ELEMENTS = ()


class SystemCallingNameRetrievalGetRequest17sp4(OCIRequest):
    """
    Request the system's calling name retrieval attributes.

    The response is either a ``SystemCallingNameRetrievalGetResponse17sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallingNameRetrievalGetRequest20(OCIRequest):
    """
    Request the system's calling name retrieval attributes.

    The response is either a ``SystemCallingNameRetrievalGetResponse20()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallingNameRetrievalModifyRequest(OCIRequest):
    """
    Modifies the system's calling name retrieval attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        query_timer_milli_seconds: queryTimerMilliSeconds
        server_net_address: serverNetAddress
        server_port: serverPort
        server_transport_protocol: serverTransportProtocol
    """

    _ELEMENTS = (
        E("query_timer_milli_seconds", "queryTimerMilliSeconds", int),
        E("server_net_address", "serverNetAddress", str),
        E("server_port", "serverPort", int),
        E("server_transport_protocol", "serverTransportProtocol", str),
    )

    query_timer_milli_seconds: int = Field(type=int, required=False, mutable=False)
    server_net_address: str = Field(type=str, required=False, mutable=False)
    server_port: int = Field(type=int, required=False, mutable=False)
    server_transport_protocol: str = Field(type=str, required=False, mutable=False)


class SystemCallingNameRetrievalModifyRequest16sp1(OCIRequest):
    """
    Modifies the system's calling name retrieval attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        trigger_cnam_queries_for_all_network_calls: triggerCNAMQueriesForAllNetworkCalls
        trigger_cnam_queries_for_group_and_enterprise_calls:
            triggerCNAMQueriesForGroupAndEnterpriseCalls
        query_protocol: queryProtocol
        query_timeout_milliseconds: queryTimeoutMilliseconds
        sip_external_database_net_address: sipExternalDatabaseNetAddress
        sip_external_database_port: sipExternalDatabasePort
        sip_external_database_transport: sipExternalDatabaseTransport
        soap_external_database_net_address: soapExternalDatabaseNetAddress
        soap_supports_dnssrv: soapSupportsDNSSRV
        calling_name_source: callingNameSource
    """

    _ELEMENTS = (
        E(
            "trigger_cnam_queries_for_all_network_calls",
            "triggerCNAMQueriesForAllNetworkCalls", bool,
        ),
        E(
            "trigger_cnam_queries_for_group_and_enterprise_calls",
            "triggerCNAMQueriesForGroupAndEnterpriseCalls", bool,
        ),
        E("query_protocol", "queryProtocol", str),
        E("query_timeout_milliseconds", "queryTimeoutMilliseconds", int),
        E("sip_external_database_net_address", "sipExternalDatabaseNetAddress", str),
        E("sip_external_database_port", "sipExternalDatabasePort", int),
        E("sip_external_database_transport", "sipExternalDatabaseTransport", str),
        E("soap_external_database_net_address", "soapExternalDatabaseNetAddress", str),
        E("soap_supports_dnssrv", "soapSupportsDNSSRV", bool),
        E("calling_name_source", "callingNameSource", str),
    )

    trigger_cnam_queries_for_all_network_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    trigger_cnam_queries_for_group_and_enterprise_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    query_protocol: str = Field(type=str, required=False, mutable=False)
    query_timeout_milliseconds: int = Field(type=int, required=False, mutable=False)
    sip_external_database_net_address: str = Field(type=str, required=False, mutable=False)
    sip_external_database_port: int = Field(type=int, required=False, mutable=False)
    sip_external_database_transport: str = Field(type=str, required=False, mutable=False)
    soap_external_database_net_address: str = Field(type=str, required=False, mutable=False)
    soap_supports_dnssrv: bool = Field(type=bool, required=False, mutable=False)
    calling_name_source: str = Field(type=str, required=False, mutable=False)


class SystemCallingNameRetrievalModifyRequest20(OCIRequest):
    """
    Modifies the system's calling name retrieval attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        trigger_cnam_queries_for_all_network_calls: triggerCNAMQueriesForAllNetworkCalls
        trigger_cnam_queries_for_group_and_enterprise_calls:
            triggerCNAMQueriesForGroupAndEnterpriseCalls
        query_protocol: queryProtocol
        query_timeout_milliseconds: queryTimeoutMilliseconds
        sip_external_database_net_address: sipExternalDatabaseNetAddress
        sip_external_database_port: sipExternalDatabasePort
        sip_external_database_transport: sipExternalDatabaseTransport
        soap_external_database_net_address: soapExternalDatabaseNetAddress
        calling_name_source: callingNameSource
        route_advance_timer: routeAdvanceTimer
        retry_failed_cnam_server_interval: retryFailedCNAMServerInterval
        ignore_restricted_presentation_indicator: ignoreRestrictedPresentationIndicator
        supports_dnssrv: supportsDNSSRV
    """

    _ELEMENTS = (
        E(
            "trigger_cnam_queries_for_all_network_calls",
            "triggerCNAMQueriesForAllNetworkCalls", bool,
        ),
        E(
            "trigger_cnam_queries_for_group_and_enterprise_calls",
            "triggerCNAMQueriesForGroupAndEnterpriseCalls", bool,
        ),
        E("query_protocol", "queryProtocol", str),
        E("query_timeout_milliseconds", "queryTimeoutMilliseconds", int),
        E("sip_external_database_net_address", "sipExternalDatabaseNetAddress", str),
        E("sip_external_database_port", "sipExternalDatabasePort", int),
        E("sip_external_database_transport", "sipExternalDatabaseTransport", str),
        E("soap_external_database_net_address", "soapExternalDatabaseNetAddress", str),
        E("calling_name_source", "callingNameSource", str),
        E("route_advance_timer", "routeAdvanceTimer", int),
        E("retry_failed_cnam_server_interval", "retryFailedCNAMServerInterval", int),
        E(
            "ignore_restricted_presentation_indicator",
            "ignoreRestrictedPresentationIndicator", bool,
        ),
        E("supports_dnssrv", "supportsDNSSRV", bool),
    )

    trigger_cnam_queries_for_all_network_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    trigger_cnam_queries_for_group_and_enterprise_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    query_protocol: str = Field(type=str, required=False, mutable=False)
    query_timeout_milliseconds: int = Field(type=int, required=False, mutable=False)
    sip_external_database_net_address: str = Field(type=str, required=False, mutable=False)
    sip_external_database_port: int = Field(type=int, required=False, mutable=False)
    sip_external_database_transport: str = Field(type=str, required=False, mutable=False)
    soap_external_database_net_address: str = Field(type=str, required=False, mutable=False)
    calling_name_source: str = Field(type=str, required=False, mutable=False)
    route_advance_timer: int = Field(type=int, required=False, mutable=False)
    retry_failed_cnam_server_interval: int = Field(type=int, required=False, mutable=False)
    ignore_restricted_presentation_indicator: bool = Field(
        type=bool, required=False, mutable=False,
    )
    supports_dnssrv: bool = Field(type=bool, required=False, mutable=False)


class SystemCallingPartyCategoryAddRequest(OCIRequest):
    """
    Add a Calling Party Category to system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        category: category
        cpc_value: cpcValue
        isup_oli_value: isupOliValue
        gtd_oli_value: gtdOliValue
        user_category: userCategory
        pay_phone: payPhone
        operator: operator
        default: default
        collect_call: collectCall
        web_display_key: webDisplayKey
    """

    _ELEMENTS = (
        E("category", "category", str, is_required=True),
        E("cpc_value", "cpcValue", str),
        E("isup_oli_value", "isupOliValue", int),
        E("gtd_oli_value", "gtdOliValue", str),
        E("user_category", "userCategory", bool, is_required=True),
        E("pay_phone", "payPhone", bool, is_required=True),
        E("operator", "operator", bool, is_required=True),
        E("default", "default", bool, is_required=True),
        E("collect_call", "collectCall", bool, is_required=True),
        E("web_display_key", "webDisplayKey", str),
    )

    category: str = Field(type=str, required=True, mutable=False)
    cpc_value: str = Field(type=str, required=False, mutable=False)
    isup_oli_value: int = Field(type=int, required=False, mutable=False)
    gtd_oli_value: str = Field(type=str, required=False, mutable=False)
    user_category: bool = Field(type=bool, required=True, mutable=False)
    pay_phone: bool = Field(type=bool, required=True, mutable=False)
    operator: bool = Field(type=bool, required=True, mutable=False)
    default: bool = Field(type=bool, required=True, mutable=False)
    collect_call: bool = Field(type=bool, required=True, mutable=False)
    web_display_key: str = Field(type=str, required=False, mutable=False)


class SystemCallingPartyCategoryDeleteRequest(OCIRequest):
    """
    Delete a Calling Party Category from system.

    The category cannot be deleted if it is the default or is in use by any users.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        category: category
    """

    _ELEMENTS = (
        E("category", "category", str, is_required=True),
    )

    category: str = Field(type=str, required=True, mutable=False)


class SystemCallingPartyCategoryGetListRequest(OCIRequest):
    """
    Get the list of all Calling Party Category in system.

    The response is either a ``SystemCallingPartyCategoryGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCallingPartyCategoryGetRequest(OCIRequest):
    """
    Get an existing Calling Party Category in system.

    The response is either a ``SystemCallingPartyCategoryGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        category: category
    """

    _ELEMENTS = (
        E("category", "category", str, is_required=True),
    )

    category: str = Field(type=str, required=True, mutable=False)


class SystemCallingPartyCategoryModifyRequest(OCIRequest):
    """
    Modify a Calling Party Category in system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        category: category
        cpc_value: cpcValue
        isup_oli_value: isupOliValue
        gtd_oli_value: gtdOliValue
        user_category: userCategory
        pay_phone: payPhone
        operator: operator
        become_default: becomeDefault
        collect_call: collectCall
        web_display_key: webDisplayKey
    """

    _ELEMENTS = (
        E("category", "category", str, is_required=True),
        E("cpc_value", "cpcValue", str),
        E("isup_oli_value", "isupOliValue", int),
        E("gtd_oli_value", "gtdOliValue", str),
        E("user_category", "userCategory", bool),
        E("pay_phone", "payPhone", bool),
        E("operator", "operator", bool),
        E("become_default", "becomeDefault", bool),
        E("collect_call", "collectCall", bool),
        E("web_display_key", "webDisplayKey", str),
    )

    category: str = Field(type=str, required=True, mutable=False)
    cpc_value: str = Field(type=str, required=False, mutable=False)
    isup_oli_value: int = Field(type=int, required=False, mutable=False)
    gtd_oli_value: str = Field(type=str, required=False, mutable=False)
    user_category: bool = Field(type=bool, required=False, mutable=False)
    pay_phone: bool = Field(type=bool, required=False, mutable=False)
    operator: bool = Field(type=bool, required=False, mutable=False)
    become_default: bool = Field(type=bool, required=False, mutable=False)
    collect_call: bool = Field(type=bool, required=False, mutable=False)
    web_display_key: str = Field(type=str, required=False, mutable=False)


class SystemClassmarkAddRequest(OCIRequest):
    """
    Add a Class Mark to system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        classmark: classmark
        value: value
        web_display_key: webDisplayKey
    """

    _ELEMENTS = (
        E("classmark", "classmark", str, is_required=True),
        E("value", "value", str, is_required=True),
        E("web_display_key", "webDisplayKey", str),
    )

    classmark: str = Field(type=str, required=True, mutable=False)
    value: str = Field(type=str, required=True, mutable=False)
    web_display_key: str = Field(type=str, required=False, mutable=False)


class SystemClassmarkDeleteRequest(OCIRequest):
    """
    Delete a Class Mark from system.

    It cannot be deleted if it is in use by any users.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        classmark: classmark
    """

    _ELEMENTS = (
        E("classmark", "classmark", str, is_required=True),
    )

    classmark: str = Field(type=str, required=True, mutable=False)


class SystemClassmarkGetListRequest(OCIRequest):
    """
    Get the list of all Class Mark in system.

    The response is either a ``SystemClassmarkGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemClassmarkModifyRequest(OCIRequest):
    """
    Modify a Class Mark in system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        classmark: classmark
        value: value
        web_display_key: webDisplayKey
    """

    _ELEMENTS = (
        E("classmark", "classmark", str, is_required=True),
        E("value", "value", str),
        E("web_display_key", "webDisplayKey", str),
    )

    classmark: str = Field(type=str, required=True, mutable=False)
    value: str = Field(type=str, required=False, mutable=False)
    web_display_key: str = Field(type=str, required=False, mutable=False)


class SystemClientSessionParametersGetRequest(OCIRequest):
    """
    Request to get the list of Client Session (web and CLI) system parameters.

    The response is either ``SystemClientSessionParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemClientSessionParametersModifyRequest(OCIRequest):
    """
    Request to modify Client Session (web and CLI) system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        enable_inactivity_timeout: enableInactivityTimeout
        inactivity_timeout_minutes: inactivityTimeoutMinutes
    """

    _ELEMENTS = (
        E("enable_inactivity_timeout", "enableInactivityTimeout", bool),
        E("inactivity_timeout_minutes", "inactivityTimeoutMinutes", int),
    )

    enable_inactivity_timeout: bool = Field(type=bool, required=False, mutable=False)
    inactivity_timeout_minutes: int = Field(type=int, required=False, mutable=False)


class SystemCodecAddRequest(OCIRequest):
    """
    Request to add a codec to the ordered list of codecs supported by the system.

    The ordered list of codecs is sent to MGCP devices when creating connections.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        codec: codec
    """

    _ELEMENTS = (
        E("codec", "codec", str, is_required=True),
    )

    codec: str = Field(type=str, required=True, mutable=False)


class SystemCodecDeleteRequest(OCIRequest):
    """
    Request to delete a supported codec from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        codec: codec
    """

    _ELEMENTS = (
        E("codec", "codec", str, is_required=True),
    )

    codec: str = Field(type=str, required=True, mutable=False)


class SystemCodecGetListRequest(OCIRequest):
    """
    Request to get the ordered list of supported codecs in the system.

    The ordered list of codecs is sent to MGCP devices when creating connections.

    The response is either a ``SystemCodecGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCollaborateGetRequest(OCIRequest):
    """
    Request the system level data associated with collaborate services.

    The response is either a ``SystemCollaborateGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCommunicationBarringAlternateCallIndicatorAddRequest(OCIRequest):
    """
    Add a Communication Barring Alternate Call Indicator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        alternate_call_indicator: alternateCallIndicator
        network_server_alternate_call_indicator: networkServerAlternateCallIndicator
    """

    _ELEMENTS = (
        E("alternate_call_indicator", "alternateCallIndicator", str, is_required=True),
        E(
            "network_server_alternate_call_indicator",
            "networkServerAlternateCallIndicator", str, is_required=True,
        ),
    )

    alternate_call_indicator: str = Field(type=str, required=True, mutable=False)
    network_server_alternate_call_indicator: str = Field(
        type=str, required=True, mutable=False,
    )


class SystemCommunicationBarringAlternateCallIndicatorDeleteRequest(OCIRequest):
    """
    Delete a Communication Barring Alternate Call Indicator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        alternate_call_indicator: alternateCallIndicator
    """

    _ELEMENTS = (
        E("alternate_call_indicator", "alternateCallIndicator", str, is_required=True),
    )

    alternate_call_indicator: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringAlternateCallIndicatorGetListRequest(OCIRequest):
    """
    Get all the Communication Barring Alternate Call Indicator defined in the system.

    The response is either a
    ``SystemCommunicationBarringAlternateCallIndicatorGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCommunicationBarringAlternateCallIndicatorModifyRequest(OCIRequest):
    """
    Modify a Communication Barring Alternate Call Indicator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        alternate_call_indicator: alternateCallIndicator
        network_server_alternate_call_indicator: networkServerAlternateCallIndicator
    """

    _ELEMENTS = (
        E("alternate_call_indicator", "alternateCallIndicator", str, is_required=True),
        E(
            "network_server_alternate_call_indicator",
            "networkServerAlternateCallIndicator", str,
        ),
    )

    alternate_call_indicator: str = Field(type=str, required=True, mutable=False)
    network_server_alternate_call_indicator: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemCommunicationBarringCallTypeAddRequest(OCIRequest):
    """
    Add a Communication Barring Call Type.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        call_type: callType
        network_server_call_type: networkServerCallType
    """

    _ELEMENTS = (
        E("call_type", "callType", str, is_required=True),
        E("network_server_call_type", "networkServerCallType", str, is_required=True),
    )

    call_type: str = Field(type=str, required=True, mutable=False)
    network_server_call_type: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringCallTypeDeleteRequest(OCIRequest):
    """
    Delete a Communication Barring Call Type.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        call_type: callType
    """

    _ELEMENTS = (
        E("call_type", "callType", str, is_required=True),
    )

    call_type: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringCallTypeGetListRequest(OCIRequest):
    """
    Get all the Communication Barring Call Types defined in the system.

    The response is either a ``SystemCommunicationBarringCallTypeGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCommunicationBarringCallTypeModifyRequest(OCIRequest):
    """
    Modify a Communication Barring Call Type.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        call_type: callType
        network_server_call_type: networkServerCallType
    """

    _ELEMENTS = (
        E("call_type", "callType", str, is_required=True),
        E("network_server_call_type", "networkServerCallType", str),
    )

    call_type: str = Field(type=str, required=True, mutable=False)
    network_server_call_type: str = Field(type=str, required=False, mutable=False)


class SystemCommunicationBarringCriteriaAddRequest(OCIRequest):
    """
    Add a new Communication Barring Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``SystemCommunicationBarringCriteriaAddRequest17()``

    Attributes:
        name: name
        description: description
        match_call_type: matchCallType
        match_alternate_call_indicator: matchAlternateCallIndicator
        match_virtual_on_net_call_type: matchVirtualOnNetCallType
        match_public_network: matchPublicNetwork
        match_private_network: matchPrivateNetwork
        match_local_category: matchLocalCategory
        match_national_category: matchNationalCategory
        match_interlata_category: matchInterlataCategory
        match_intralata_category: matchIntralataCategory
        match_international_category: matchInternationalCategory
        match_private_category: matchPrivateCategory
        match_emergency_category: matchEmergencyCategory
        match_other_category: matchOtherCategory
        match_inter_network: matchInterNetwork
        match_inter_hosting_ne: matchInterHostingNE
        match_inter_as: matchInterAS
        match_intra_as: matchIntraAS
        match_charge_calls: matchChargeCalls
        match_no_charge_calls: matchNoChargeCalls
        match_group_calls: matchGroupCalls
        match_enterprise_calls: matchEnterpriseCalls
        match_network_calls: matchNetworkCalls
        match_network_url_calls: matchNetworkURLCalls
        match_repair_calls: matchRepairCalls
        match_emergency_calls: matchEmergencyCalls
        match_internal_calls: matchInternalCalls
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("match_call_type", "matchCallType", str, is_array=True),
        E(
            "match_alternate_call_indicator", "matchAlternateCallIndicator", str,
            is_array=True,
        ),
        E("match_virtual_on_net_call_type", "matchVirtualOnNetCallType", str, is_array=True),
        E("match_public_network", "matchPublicNetwork", bool, is_required=True),
        E("match_private_network", "matchPrivateNetwork", bool, is_required=True),
        E("match_local_category", "matchLocalCategory", bool, is_required=True),
        E("match_national_category", "matchNationalCategory", bool, is_required=True),
        E("match_interlata_category", "matchInterlataCategory", bool, is_required=True),
        E("match_intralata_category", "matchIntralataCategory", bool, is_required=True),
        E(
            "match_international_category", "matchInternationalCategory", bool,
            is_required=True,
        ),
        E("match_private_category", "matchPrivateCategory", bool, is_required=True),
        E("match_emergency_category", "matchEmergencyCategory", bool, is_required=True),
        E("match_other_category", "matchOtherCategory", bool, is_required=True),
        E("match_inter_network", "matchInterNetwork", bool, is_required=True),
        E("match_inter_hosting_ne", "matchInterHostingNE", bool, is_required=True),
        E("match_inter_as", "matchInterAS", bool, is_required=True),
        E("match_intra_as", "matchIntraAS", bool, is_required=True),
        E("match_charge_calls", "matchChargeCalls", bool, is_required=True),
        E("match_no_charge_calls", "matchNoChargeCalls", bool, is_required=True),
        E("match_group_calls", "matchGroupCalls", bool, is_required=True),
        E("match_enterprise_calls", "matchEnterpriseCalls", bool, is_required=True),
        E("match_network_calls", "matchNetworkCalls", bool, is_required=True),
        E("match_network_url_calls", "matchNetworkURLCalls", bool, is_required=True),
        E("match_repair_calls", "matchRepairCalls", bool, is_required=True),
        E("match_emergency_calls", "matchEmergencyCalls", bool, is_required=True),
        E("match_internal_calls", "matchInternalCalls", bool, is_required=True),
        E("time_schedule", "timeSchedule", str),
        E("holiday_schedule", "holidaySchedule", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    match_call_type: "List[str]" = Field(type=list, required=False, mutable=False)
    match_alternate_call_indicator: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )
    match_virtual_on_net_call_type: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )
    match_public_network: bool = Field(type=bool, required=True, mutable=False)
    match_private_network: bool = Field(type=bool, required=True, mutable=False)
    match_local_category: bool = Field(type=bool, required=True, mutable=False)
    match_national_category: bool = Field(type=bool, required=True, mutable=False)
    match_interlata_category: bool = Field(type=bool, required=True, mutable=False)
    match_intralata_category: bool = Field(type=bool, required=True, mutable=False)
    match_international_category: bool = Field(type=bool, required=True, mutable=False)
    match_private_category: bool = Field(type=bool, required=True, mutable=False)
    match_emergency_category: bool = Field(type=bool, required=True, mutable=False)
    match_other_category: bool = Field(type=bool, required=True, mutable=False)
    match_inter_network: bool = Field(type=bool, required=True, mutable=False)
    match_inter_hosting_ne: bool = Field(type=bool, required=True, mutable=False)
    match_inter_as: bool = Field(type=bool, required=True, mutable=False)
    match_intra_as: bool = Field(type=bool, required=True, mutable=False)
    match_charge_calls: bool = Field(type=bool, required=True, mutable=False)
    match_no_charge_calls: bool = Field(type=bool, required=True, mutable=False)
    match_group_calls: bool = Field(type=bool, required=True, mutable=False)
    match_enterprise_calls: bool = Field(type=bool, required=True, mutable=False)
    match_network_calls: bool = Field(type=bool, required=True, mutable=False)
    match_network_url_calls: bool = Field(type=bool, required=True, mutable=False)
    match_repair_calls: bool = Field(type=bool, required=True, mutable=False)
    match_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    match_internal_calls: bool = Field(type=bool, required=True, mutable=False)
    time_schedule: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: str = Field(type=str, required=False, mutable=False)


class SystemCommunicationBarringCriteriaAddRequest17(OCIRequest):
    """
    Add a new Communication Barring Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
        match_call_type: matchCallType
        match_alternate_call_indicator: matchAlternateCallIndicator
        match_virtual_on_net_call_type: matchVirtualOnNetCallType
        match_public_network: matchPublicNetwork
        match_private_network: matchPrivateNetwork
        match_local_category: matchLocalCategory
        match_national_category: matchNationalCategory
        match_interlata_category: matchInterlataCategory
        match_intralata_category: matchIntralataCategory
        match_international_category: matchInternationalCategory
        match_private_category: matchPrivateCategory
        match_emergency_category: matchEmergencyCategory
        match_other_category: matchOtherCategory
        match_inter_network: matchInterNetwork
        match_inter_hosting_ne: matchInterHostingNE
        match_inter_as: matchInterAS
        match_intra_as: matchIntraAS
        match_charge_calls: matchChargeCalls
        match_no_charge_calls: matchNoChargeCalls
        match_group_calls: matchGroupCalls
        match_enterprise_calls: matchEnterpriseCalls
        match_network_calls: matchNetworkCalls
        match_network_url_calls: matchNetworkURLCalls
        match_repair_calls: matchRepairCalls
        match_emergency_calls: matchEmergencyCalls
        match_internal_calls: matchInternalCalls
        match_location: matchLocation
        match_roaming: matchRoaming
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        match_number_portability_status: matchNumberPortabilityStatus
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("match_call_type", "matchCallType", str, is_array=True),
        E(
            "match_alternate_call_indicator", "matchAlternateCallIndicator", str,
            is_array=True,
        ),
        E("match_virtual_on_net_call_type", "matchVirtualOnNetCallType", str, is_array=True),
        E("match_public_network", "matchPublicNetwork", bool, is_required=True),
        E("match_private_network", "matchPrivateNetwork", bool, is_required=True),
        E("match_local_category", "matchLocalCategory", bool, is_required=True),
        E("match_national_category", "matchNationalCategory", bool, is_required=True),
        E("match_interlata_category", "matchInterlataCategory", bool, is_required=True),
        E("match_intralata_category", "matchIntralataCategory", bool, is_required=True),
        E(
            "match_international_category", "matchInternationalCategory", bool,
            is_required=True,
        ),
        E("match_private_category", "matchPrivateCategory", bool, is_required=True),
        E("match_emergency_category", "matchEmergencyCategory", bool, is_required=True),
        E("match_other_category", "matchOtherCategory", bool, is_required=True),
        E("match_inter_network", "matchInterNetwork", bool, is_required=True),
        E("match_inter_hosting_ne", "matchInterHostingNE", bool, is_required=True),
        E("match_inter_as", "matchInterAS", bool, is_required=True),
        E("match_intra_as", "matchIntraAS", bool, is_required=True),
        E("match_charge_calls", "matchChargeCalls", bool, is_required=True),
        E("match_no_charge_calls", "matchNoChargeCalls", bool, is_required=True),
        E("match_group_calls", "matchGroupCalls", bool, is_required=True),
        E("match_enterprise_calls", "matchEnterpriseCalls", bool, is_required=True),
        E("match_network_calls", "matchNetworkCalls", bool, is_required=True),
        E("match_network_url_calls", "matchNetworkURLCalls", bool, is_required=True),
        E("match_repair_calls", "matchRepairCalls", bool, is_required=True),
        E("match_emergency_calls", "matchEmergencyCalls", bool, is_required=True),
        E("match_internal_calls", "matchInternalCalls", bool, is_required=True),
        E("match_location", "matchLocation", str, is_required=True),
        E("match_roaming", "matchRoaming", str, is_required=True),
        E("time_schedule", "timeSchedule", str),
        E("holiday_schedule", "holidaySchedule", str),
        E(
            "match_number_portability_status", "matchNumberPortabilityStatus", str,
            is_array=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    match_call_type: "List[str]" = Field(type=list, required=False, mutable=False)
    match_alternate_call_indicator: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )
    match_virtual_on_net_call_type: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )
    match_public_network: bool = Field(type=bool, required=True, mutable=False)
    match_private_network: bool = Field(type=bool, required=True, mutable=False)
    match_local_category: bool = Field(type=bool, required=True, mutable=False)
    match_national_category: bool = Field(type=bool, required=True, mutable=False)
    match_interlata_category: bool = Field(type=bool, required=True, mutable=False)
    match_intralata_category: bool = Field(type=bool, required=True, mutable=False)
    match_international_category: bool = Field(type=bool, required=True, mutable=False)
    match_private_category: bool = Field(type=bool, required=True, mutable=False)
    match_emergency_category: bool = Field(type=bool, required=True, mutable=False)
    match_other_category: bool = Field(type=bool, required=True, mutable=False)
    match_inter_network: bool = Field(type=bool, required=True, mutable=False)
    match_inter_hosting_ne: bool = Field(type=bool, required=True, mutable=False)
    match_inter_as: bool = Field(type=bool, required=True, mutable=False)
    match_intra_as: bool = Field(type=bool, required=True, mutable=False)
    match_charge_calls: bool = Field(type=bool, required=True, mutable=False)
    match_no_charge_calls: bool = Field(type=bool, required=True, mutable=False)
    match_group_calls: bool = Field(type=bool, required=True, mutable=False)
    match_enterprise_calls: bool = Field(type=bool, required=True, mutable=False)
    match_network_calls: bool = Field(type=bool, required=True, mutable=False)
    match_network_url_calls: bool = Field(type=bool, required=True, mutable=False)
    match_repair_calls: bool = Field(type=bool, required=True, mutable=False)
    match_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    match_internal_calls: bool = Field(type=bool, required=True, mutable=False)
    match_location: str = Field(type=str, required=True, mutable=False)
    match_roaming: str = Field(type=str, required=True, mutable=False)
    time_schedule: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: str = Field(type=str, required=False, mutable=False)
    match_number_portability_status: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCommunicationBarringCriteriaDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringCriteriaGetListRequest(OCIRequest):
    """
    Get the list of all Communication Barring Criteria.

    The response is either a ``SystemCommunicationBarringCriteriaGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCommunicationBarringCriteriaGetRequest(OCIRequest):
    """
    Get an existing Communication Barring Criteria.

    The response is either a ``SystemCommunicationBarringCriteriaGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemCommunicationBarringCriteriaGetRequest17()``

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringCriteriaGetRequest17(OCIRequest):
    """
    Get an existing Communication Barring Criteria.

    The response is either a ``SystemCommunicationBarringCriteriaGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringCriteriaGetRequest19sp1(OCIRequest):
    """
    Get an existing Communication Barring Criteria.

    The response is either a ``SystemCommunicationBarringCriteriaGetResponse19sp1()`` or
    an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringDigitPatternCriteriaAddRequest(OCIRequest):
    """
    Add a new Communication Barring Digit Pattern Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
        match_digit_pattern: matchDigitPattern
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("match_digit_pattern", "matchDigitPattern", str, is_array=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    match_digit_pattern: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemCommunicationBarringDigitPatternCriteriaDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Digit Pattern Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringDigitPatternCriteriaGetListRequest(OCIRequest):
    """
    Get the list of all Digit Pattern Criteria defined at the system level.

    The response is either a
    ``SystemCommunicationBarringDigitPatternCriteriaGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCommunicationBarringDigitPatternCriteriaGetRequest(OCIRequest):
    """
    Get an existing Communication Barring Digit Pattern Criteria.

    The response is either a
    ``SystemCommunicationBarringDigitPatternCriteriaGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringDigitPatternCriteriaModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Digit Pattern Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        description: description
        add_match_digit_pattern: addMatchDigitPattern
        delete_match_digit_pattern: deleteMatchDigitPattern
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("add_match_digit_pattern", "addMatchDigitPattern", str, is_array=True),
        E("delete_match_digit_pattern", "deleteMatchDigitPattern", str, is_array=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    add_match_digit_pattern: "List[str]" = Field(type=list, required=False, mutable=False)
    delete_match_digit_pattern: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemCommunicationBarringGetRequest(OCIRequest):
    """
    Request the system level data associated with Communication Barring.

    The response is either a ``SystemCommunicationBarringGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCommunicationBarringIncomingCriteriaAddRequest(OCIRequest):
    """
    Add a new Communication Barring Incoming Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        match_number_portability_status: matchNumberPortabilityStatus
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("time_schedule", "timeSchedule", str),
        E("holiday_schedule", "holidaySchedule", str),
        E(
            "match_number_portability_status", "matchNumberPortabilityStatus", str,
            is_array=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    time_schedule: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: str = Field(type=str, required=False, mutable=False)
    match_number_portability_status: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCommunicationBarringIncomingCriteriaDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Incoming Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringIncomingCriteriaGetListRequest(OCIRequest):
    """
    Get the list of all Communication Barring Incoming Criteria.

    The response is either a
    ``SystemCommunicationBarringIncomingCriteriaGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCommunicationBarringIncomingCriteriaGetRequest(OCIRequest):
    """
    Get an existing Communication Barring Incoming Criteria.

    The response is either a ``SystemCommunicationBarringIncomingCriteriaGetResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Communication Barring.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        direct_transfer_screening: directTransferScreening
    """

    _ELEMENTS = (
        E("direct_transfer_screening", "directTransferScreening", bool),
    )

    direct_transfer_screening: bool = Field(type=bool, required=False, mutable=False)


class SystemCommunicationBarringProfileDeleteRequest(OCIRequest):
    """
    Delete an existing Communication Barring Profile.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringProfileGetCriteriaUsageListRequest(OCIRequest):
    """
    Get the list of Communication Barring Proifles that uses a specific Communication
    Barring criteria.

    The response is either a
    ``SystemCommunicationBarringProfileGetCriteriaUsageListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringProfileGetDigitPatternCriteriaUsageListRequest(OCIRequest):
    """
    Get the list of Profiles that use a specific Digit Pattern Criteria.

    The response is either a
    ``SystemCommunicationBarringProfileGetDigitPatternCriteriaUsageListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringProfileGetIncomingCriteriaUsageListRequest(OCIRequest):
    """
    Get the list of Communication Barring Proifles that uses a specific Communication
    Barring Incoming criteria.

    The response is either a
    ``SystemCommunicationBarringProfileGetIncomingCriteriaUsageListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringProfileGetListRequest(OCIRequest):
    """
    Get the list of all Communication Barring Profiles.

    The response is either a ``SystemCommunicationBarringProfileGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCommunicationBarringProfileGetRequest(OCIRequest):
    """
    Get an existing Communication Barring Profile.

    The response is either a ``SystemCommunicationBarringProfileGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemCommunicationBarringProfileGetRequest16()``

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringProfileGetRequest16(OCIRequest):
    """
    Get an existing Communication Barring Profile.

    The response is either a ``SystemCommunicationBarringProfileGetResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringProfileGetRequest17sp1(OCIRequest):
    """
    Get an existing Communication Barring Profile.

    The response is either a ``SystemCommunicationBarringProfileGetResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringProfileGetRequest17sp3(OCIRequest):
    """
    Get an existing Communication Barring Profile.

    The response is either a ``SystemCommunicationBarringProfileGetResponse17sp3()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringProfileGetRequest19sp1(OCIRequest):
    """
    Get an existing Communication Barring Profile.

    The response is either a ``SystemCommunicationBarringProfileGetResponse19sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringServiceProviderGetCriteriaUsageListRequest(OCIRequest):
    """
    Get the list of Service Providers that use a specific Communication Barring Criteria.

    The response is either a
    ``SystemCommunicationBarringServiceProviderGetCriteriaUsageListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringServiceProviderGetIncomingCriteriaUsageListRequest(OCIRequest):
    """
    Get the list of Service Providers that use a specific Communication Barring Incoming
    Criteria.

    The response is either a
    ``SystemCommunicationBarringServiceProviderGetIncomingCriteriaUsageListResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemCommunicationBarringUserControlGetRequest(OCIRequest):
    """
    Gets the Communication Barring system level settings.

    The response is either ``SystemCommunicationBarringUserControlGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCommunicationBarringUserControlModifyRequest(OCIRequest):
    """
    Modifies the system's Communication Barring User-Control settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        enable_lockout: enableLockout
        max_number_of_failed_attempts: maxNumberOfFailedAttempts
        lockout_minutes: lockoutMinutes
    """

    _ELEMENTS = (
        E("enable_lockout", "enableLockout", bool),
        E("max_number_of_failed_attempts", "maxNumberOfFailedAttempts", int),
        E("lockout_minutes", "lockoutMinutes", int),
    )

    enable_lockout: bool = Field(type=bool, required=False, mutable=False)
    max_number_of_failed_attempts: int = Field(type=int, required=False, mutable=False)
    lockout_minutes: int = Field(type=int, required=False, mutable=False)


class SystemConfigurableFileSystemGetRequest(OCIRequest):
    """
    Request to get the File System parameters.

    The response is either ``SystemConfigurableFileSystemGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemConfigurableFileSystemModifyRequest(OCIRequest):
    """
    Request to modify File System parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        media_directory: mediaDirectory
        protocol_file: protocolFile
        protocol_web_dav: protocolWebDAV
    """

    _ELEMENTS = (
        E("media_directory", "mediaDirectory", str),
        E("protocol_file", "protocolFile", str, is_complex=True),  # unknown
        E("protocol_web_dav", "protocolWebDAV", str, is_complex=True),  # unknown
    )

    media_directory: str = Field(type=str, required=False, mutable=False)
    protocol_file: str = Field(type=str, required=False, mutable=False)
    protocol_web_dav: str = Field(type=str, required=False, mutable=False)


class SystemConfigurableTreatmentAddRequest(OCIRequest):
    """
    Add a configurable treatment.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        treatment_id: treatmentId
        charge_indicator: chargeIndicator
        description: description
        access_sip_status_code: accessSIPStatusCode
        access_sip_status_message: accessSIPStatusMessage
        network_sip_status_code: networkSIPStatusCode
        network_sip_status_message: networkSIPStatusMessage
        q850_cause_value: q850CauseValue
        q850_text: q850Text
        access_treatment_audio_file: accessTreatmentAudioFile
        access_treatment_video_file: accessTreatmentVideoFile
        network_treatment_audio_file: networkTreatmentAudioFile
        network_treatment_video_file: networkTreatmentVideoFile
        cdr_termination_cause: cdrTerminationCause
        route_advance: routeAdvance
        internal_release_cause: internalReleaseCause
        access_send_reason_header: accessSendReasonHeader
        network_send_reason_header: networkSendReasonHeader
    """

    _ELEMENTS = (
        E("treatment_id", "treatmentId", str, is_required=True),
        E("charge_indicator", "chargeIndicator", str, is_required=True),
        E("description", "description", str),
        E("access_sip_status_code", "accessSIPStatusCode", int),
        E("access_sip_status_message", "accessSIPStatusMessage", str),
        E("network_sip_status_code", "networkSIPStatusCode", int),
        E("network_sip_status_message", "networkSIPStatusMessage", str),
        E("q850_cause_value", "q850CauseValue", int),
        E("q850_text", "q850Text", str),
        E("access_treatment_audio_file", "accessTreatmentAudioFile", str),
        E("access_treatment_video_file", "accessTreatmentVideoFile", str),
        E("network_treatment_audio_file", "networkTreatmentAudioFile", str),
        E("network_treatment_video_file", "networkTreatmentVideoFile", str),
        E("cdr_termination_cause", "cdrTerminationCause", str),
        E("route_advance", "routeAdvance", bool),
        E("internal_release_cause", "internalReleaseCause", str),
        E("access_send_reason_header", "accessSendReasonHeader", bool),
        E("network_send_reason_header", "networkSendReasonHeader", bool),
    )

    treatment_id: str = Field(type=str, required=True, mutable=False)
    charge_indicator: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    access_sip_status_code: int = Field(type=int, required=False, mutable=False)
    access_sip_status_message: str = Field(type=str, required=False, mutable=False)
    network_sip_status_code: int = Field(type=int, required=False, mutable=False)
    network_sip_status_message: str = Field(type=str, required=False, mutable=False)
    q850_cause_value: int = Field(type=int, required=False, mutable=False)
    q850_text: str = Field(type=str, required=False, mutable=False)
    access_treatment_audio_file: str = Field(type=str, required=False, mutable=False)
    access_treatment_video_file: str = Field(type=str, required=False, mutable=False)
    network_treatment_audio_file: str = Field(type=str, required=False, mutable=False)
    network_treatment_video_file: str = Field(type=str, required=False, mutable=False)
    cdr_termination_cause: str = Field(type=str, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    internal_release_cause: str = Field(type=str, required=False, mutable=False)
    access_send_reason_header: bool = Field(type=bool, required=False, mutable=False)
    network_send_reason_header: bool = Field(type=bool, required=False, mutable=False)


class SystemConfigurableTreatmentDeleteRequest(OCIRequest):
    """
    Delete a configurable treatment.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("treatment_id", "treatmentId", str, is_required=True),
    )

    treatment_id: str = Field(type=str, required=True, mutable=False)


class SystemConfigurableTreatmentGetListRequest(OCIRequest):
    """
    Get a list of configurable treatments.

    The response is either a ``SystemConfigurableTreatmentGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemConfigurableTreatmentGetRequest(OCIRequest):
    """
    Get all the attributes of a configurable treatment.

    The response is either a ``SystemConfigurableTreatmentGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemConfigurableTreatmentGetRequest16()``

    Attributes:
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("treatment_id", "treatmentId", str, is_required=True),
    )

    treatment_id: str = Field(type=str, required=True, mutable=False)


class SystemConfigurableTreatmentGetRequest16(OCIRequest):
    """
    Get all the attributes of a configurable treatment.

    The response is either a ``SystemConfigurableTreatmentGetResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("treatment_id", "treatmentId", str, is_required=True),
    )

    treatment_id: str = Field(type=str, required=True, mutable=False)


class SystemConfigurableTreatmentModifyRequest(OCIRequest):
    """
    Modify the fields for a configurable treatment.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        treatment_id: treatmentId
        charge_indicator: chargeIndicator
        description: description
        access_sip_status_code: accessSIPStatusCode
        access_sip_status_message: accessSIPStatusMessage
        network_sip_status_code: networkSIPStatusCode
        network_sip_status_message: networkSIPStatusMessage
        q850_cause_value: q850CauseValue
        q850_text: q850Text
        access_treatment_audio_file: accessTreatmentAudioFile
        access_treatment_video_file: accessTreatmentVideoFile
        network_treatment_audio_file: networkTreatmentAudioFile
        network_treatment_video_file: networkTreatmentVideoFile
        cdr_termination_cause: cdrTerminationCause
        route_advance: routeAdvance
        internal_release_cause: internalReleaseCause
        access_send_reason_header: accessSendReasonHeader
        network_send_reason_header: networkSendReasonHeader
    """

    _ELEMENTS = (
        E("treatment_id", "treatmentId", str, is_required=True),
        E("charge_indicator", "chargeIndicator", str),
        E("description", "description", str),
        E("access_sip_status_code", "accessSIPStatusCode", int),
        E("access_sip_status_message", "accessSIPStatusMessage", str),
        E("network_sip_status_code", "networkSIPStatusCode", int),
        E("network_sip_status_message", "networkSIPStatusMessage", str),
        E("q850_cause_value", "q850CauseValue", int),
        E("q850_text", "q850Text", str),
        E("access_treatment_audio_file", "accessTreatmentAudioFile", str),
        E("access_treatment_video_file", "accessTreatmentVideoFile", str),
        E("network_treatment_audio_file", "networkTreatmentAudioFile", str),
        E("network_treatment_video_file", "networkTreatmentVideoFile", str),
        E("cdr_termination_cause", "cdrTerminationCause", str),
        E("route_advance", "routeAdvance", bool),
        E("internal_release_cause", "internalReleaseCause", str),
        E("access_send_reason_header", "accessSendReasonHeader", bool),
        E("network_send_reason_header", "networkSendReasonHeader", bool),
    )

    treatment_id: str = Field(type=str, required=True, mutable=False)
    charge_indicator: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    access_sip_status_code: int = Field(type=int, required=False, mutable=False)
    access_sip_status_message: str = Field(type=str, required=False, mutable=False)
    network_sip_status_code: int = Field(type=int, required=False, mutable=False)
    network_sip_status_message: str = Field(type=str, required=False, mutable=False)
    q850_cause_value: int = Field(type=int, required=False, mutable=False)
    q850_text: str = Field(type=str, required=False, mutable=False)
    access_treatment_audio_file: str = Field(type=str, required=False, mutable=False)
    access_treatment_video_file: str = Field(type=str, required=False, mutable=False)
    network_treatment_audio_file: str = Field(type=str, required=False, mutable=False)
    network_treatment_video_file: str = Field(type=str, required=False, mutable=False)
    cdr_termination_cause: str = Field(type=str, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    internal_release_cause: str = Field(type=str, required=False, mutable=False)
    access_send_reason_header: bool = Field(type=bool, required=False, mutable=False)
    network_send_reason_header: bool = Field(type=bool, required=False, mutable=False)


class SystemConnectedLineIdentificationPresentationGetRequest(OCIRequest):
    """
    Request the system level data associated with the COLP service.

    The response is either a
    ``SystemConnectedLineIdentificationPresentationGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemConnectedLineIdentificationPresentationModifyRequest(OCIRequest):
    """
    Modify the system level data associated with the COLP Service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        enforce_user_service_assignment: enforceUserServiceAssignment
    """

    _ELEMENTS = (
        E("enforce_user_service_assignment", "enforceUserServiceAssignment", bool),
    )

    enforce_user_service_assignment: bool = Field(type=bool, required=False, mutable=False)


class SystemCountryCodeAddRequest(OCIRequest):
    """
    Add a country code to the system.

    If ringPeriodMilliseconds is not specified, a default of 6000 milliseconds is assumed.
    If offHookWarningTimerSeconds is not specified, a default of 30 seconds is assumed.
    If enableNationalPrefix is not specified, a default of false is assumed.  If
    nationalPrefix is not specified, a default of null string is assumed.  If
    disableNationalPrefixForOffNetCalls is not specified, a default of false is assumed.
    The following elements are only used in AS data mode:
    disableNationalPrefixForOffNetCalls.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        country_code: countryCode
        country_name: countryName
        ring_period_milliseconds: ringPeriodMilliseconds
        off_hook_warning_timer_seconds: offHookWarningTimerSeconds
        enable_national_prefix: enableNationalPrefix
        national_prefix: nationalPrefix
        max_call_waiting_tones: maxCallWaitingTones
        time_between_call_waiting_tones_milliseconds:
            timeBetweenCallWaitingTonesMilliseconds
        disable_national_prefix_for_off_net_calls: disableNationalPrefixForOffNetCalls
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str, is_required=True),
        E("country_name", "countryName", str, is_required=True),
        E("ring_period_milliseconds", "ringPeriodMilliseconds", int),
        E("off_hook_warning_timer_seconds", "offHookWarningTimerSeconds", int),
        E("enable_national_prefix", "enableNationalPrefix", bool),
        E("national_prefix", "nationalPrefix", str),
        E("max_call_waiting_tones", "maxCallWaitingTones", int),
        E(
            "time_between_call_waiting_tones_milliseconds",
            "timeBetweenCallWaitingTonesMilliseconds", int,
        ),
        E(
            "disable_national_prefix_for_off_net_calls",
            "disableNationalPrefixForOffNetCalls", bool,
        ),
    )

    country_code: str = Field(type=str, required=True, mutable=False)
    country_name: str = Field(type=str, required=True, mutable=False)
    ring_period_milliseconds: int = Field(type=int, required=False, mutable=False)
    off_hook_warning_timer_seconds: int = Field(type=int, required=False, mutable=False)
    enable_national_prefix: bool = Field(type=bool, required=False, mutable=False)
    national_prefix: str = Field(type=str, required=False, mutable=False)
    max_call_waiting_tones: int = Field(type=int, required=False, mutable=False)
    time_between_call_waiting_tones_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )
    disable_national_prefix_for_off_net_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCountryCodeDeleteRequest(OCIRequest):
    """
    Delete a country code from the system.

    A country code cannot be deleted if it is the default country code or if any carriers
    or call type mappings are defined against it.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        country_code: countryCode
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str, is_required=True),
    )

    country_code: str = Field(type=str, required=True, mutable=False)


class SystemCountryCodeGetListRequest(OCIRequest):
    """
    Request data for all country codes.

    The response is either a ``SystemCountryCodeGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCountryCodeModifyRequest(OCIRequest):
    """
    Modify the attributes of a country code.

    If becomeDefaultCountryCode is true, the country code in this request becomes the
    default country code for the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        country_code: countryCode
        ring_period_milliseconds: ringPeriodMilliseconds
        off_hook_warning_timer_seconds: offHookWarningTimerSeconds
        enable_national_prefix: enableNationalPrefix
        national_prefix: nationalPrefix
        become_default_country_code: becomeDefaultCountryCode
        max_call_waiting_tones: maxCallWaitingTones
        time_between_call_waiting_tones_milliseconds:
            timeBetweenCallWaitingTonesMilliseconds
        disable_national_prefix_for_off_net_calls: disableNationalPrefixForOffNetCalls
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str, is_required=True),
        E("ring_period_milliseconds", "ringPeriodMilliseconds", int),
        E("off_hook_warning_timer_seconds", "offHookWarningTimerSeconds", int),
        E("enable_national_prefix", "enableNationalPrefix", bool),
        E("national_prefix", "nationalPrefix", str),
        E("become_default_country_code", "becomeDefaultCountryCode", bool),
        E("max_call_waiting_tones", "maxCallWaitingTones", int),
        E(
            "time_between_call_waiting_tones_milliseconds",
            "timeBetweenCallWaitingTonesMilliseconds", int,
        ),
        E(
            "disable_national_prefix_for_off_net_calls",
            "disableNationalPrefixForOffNetCalls", bool,
        ),
    )

    country_code: str = Field(type=str, required=True, mutable=False)
    ring_period_milliseconds: int = Field(type=int, required=False, mutable=False)
    off_hook_warning_timer_seconds: int = Field(type=int, required=False, mutable=False)
    enable_national_prefix: bool = Field(type=bool, required=False, mutable=False)
    national_prefix: str = Field(type=str, required=False, mutable=False)
    become_default_country_code: bool = Field(type=bool, required=False, mutable=False)
    max_call_waiting_tones: int = Field(type=int, required=False, mutable=False)
    time_between_call_waiting_tones_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )
    disable_national_prefix_for_off_net_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemCrInterfaceGetRequest(OCIRequest):
    """
    Gets the system level attributes of the Cr Interface.

    The response is either a ``SystemCrInterfaceGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCrInterfaceModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Cr Interface.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        cr_audit_enabled: crAuditEnabled
        cr_audit_interval_milliseconds: crAuditIntervalMilliseconds
        cr_audit_timeout_milliseconds: crAuditTimeoutMilliseconds
        cr_connection_enabled: crConnectionEnabled
        cr_connection_timeout_milliseconds: crConnectionTimeoutMilliseconds
    """

    _ELEMENTS = (
        E("cr_audit_enabled", "crAuditEnabled", bool),
        E("cr_audit_interval_milliseconds", "crAuditIntervalMilliseconds", int),
        E("cr_audit_timeout_milliseconds", "crAuditTimeoutMilliseconds", int),
        E("cr_connection_enabled", "crConnectionEnabled", bool),
        E("cr_connection_timeout_milliseconds", "crConnectionTimeoutMilliseconds", int),
    )

    cr_audit_enabled: bool = Field(type=bool, required=False, mutable=False)
    cr_audit_interval_milliseconds: int = Field(type=int, required=False, mutable=False)
    cr_audit_timeout_milliseconds: int = Field(type=int, required=False, mutable=False)
    cr_connection_enabled: bool = Field(type=bool, required=False, mutable=False)
    cr_connection_timeout_milliseconds: int = Field(type=int, required=False, mutable=False)


class SystemCustomerOriginatedTraceGetRequest(OCIRequest):
    """
    Request the system level data associated with Customer Originated Trace.

    The response is either a ``SystemCustomerOriginatedTraceGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemCustomerOriginatedTraceModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Customer Originated Trace.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        screen_malicious_callers: screenMaliciousCallers
    """

    _ELEMENTS = (
        E("screen_malicious_callers", "screenMaliciousCallers", bool),
    )

    screen_malicious_callers: bool = Field(type=bool, required=False, mutable=False)


class SystemDTMFTransmissionGetRequest(OCIRequest):
    """
    Get the system DTMF transmission configurations.

    The response is either ``SystemDTMFTransmissionGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDTMFTransmissionModifyRequest(OCIRequest):
    """
    Modify the DTMF transmission settings.

    The response is either ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        transmission_method: transmissionMethod
        signaling_content_type: signalingContentType
    """

    _ELEMENTS = (
        E("transmission_method", "transmissionMethod", str),
        E("signaling_content_type", "signalingContentType", str),
    )

    transmission_method: str = Field(type=str, required=False, mutable=False)
    signaling_content_type: str = Field(type=str, required=False, mutable=False)


class SystemDeviceManagementAutoRebuildConfigGetListRequest(OCIRequest):
    """
    Request the list of OCI request prefixes including if they trigger DM automatic
    rebuild event or not.

    The response is either a ``SystemDeviceManagementAutoRebuildConfigGetListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDeviceManagementGetAccessDeviceCountForDeviceTypeRequest(OCIRequest):
    """
    Request the number of access device of a particular device type or all device types if
    deviceType is not specified.

    If countOnlyResetSupportedDevice is true, count only access devices if the device type
    supports reset.  Devices are counted only if their device type supports Device
    Management.  An error is returned if deviceType is specified but does not support
    device management.

    The response is either
    ``SystemDeviceManagementGetAccessDeviceCountForDeviceTypeResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        count_only_reset_supported_device: countOnlyResetSupportedDevice
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str),
        E("count_only_reset_supported_device", "countOnlyResetSupportedDevice", bool),
    )

    device_type: str = Field(type=str, required=False, mutable=False)
    count_only_reset_supported_device: bool = Field(type=bool, required=False, mutable=False)


class SystemDeviceManagementGetEventStatusSummaryCountRequest(OCIRequest):
    """
    Request a summary table of the number of events in state 'Pending', 'Queued
    Internally', and 'Completed' in the system per action.

    One row is returned per action.  Actions are as per the
    DeviceManagementEventActionType (ex: Delete, Download, Rebuild, Reset, Upload). The
    state 'Queued Internally' includes total for events with status equal to 'Queued' and
    'In Progress' as per DeviceManagementEventStatus.

    The response is either ``SystemDeviceManagementGetEventStatusSummaryCountResponse()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDeviceManagementInProgressAndPendingEventCancelRequest(OCIRequest):
    """
    Cancel pending and in progress events.

    Either all events, multiple events, or a list of specified events can be canceled.
    When specifying multiple events, an event must meet all specified criteria to be
    canceled.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        cancel_all_events: cancelAllEvents
        cancel_multiple_events: cancelMultipleEvents
        event_id: eventId
    """

    _ELEMENTS = (
        E("cancel_all_events", "cancelAllEvents", str, is_complex=True),  # unknown
        E("cancel_multiple_events", "cancelMultipleEvents", str, is_complex=True),  # unknown
        E("event_id", "eventId", int),
    )

    cancel_all_events: str = Field(type=str, required=False, mutable=False)
    cancel_multiple_events: str = Field(type=str, required=False, mutable=False)
    event_id: int = Field(type=int, required=False, mutable=False)


class SystemDeviceManagementTagAddRequest(OCIRequest):
    """
    Request to add a static configuration tag.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        system_default_tag_set: systemDefaultTagSet
        tag_set_name: tagSetName
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("system_default_tag_set", "systemDefaultTagSet", bool),
        E("tag_set_name", "tagSetName", str),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    system_default_tag_set: bool = Field(type=bool, required=False, mutable=False)
    tag_set_name: str = Field(type=str, required=False, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class SystemDeviceManagementTagDeleteListRequest(OCIRequest):
    """
    Request to delete static configuration tags.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        system_default_tag_set: systemDefaultTagSet
        tag_set_name: tagSetName
        tag_name: tagName
    """

    _ELEMENTS = (
        E("system_default_tag_set", "systemDefaultTagSet", bool),
        E("tag_set_name", "tagSetName", str),
        E("tag_name", "tagName", str, is_required=True),
    )

    system_default_tag_set: bool = Field(type=bool, required=False, mutable=False)
    tag_set_name: str = Field(type=str, required=False, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)


class SystemDeviceManagementTagGetListRequest(OCIRequest):
    """
    Request to get the list of custom configuration tags managed by the Device Management
    System.

    The response is either ``SystemDeviceManagementTagGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        system_default_tag_set: systemDefaultTagSet
        tag_set_name: tagSetName
    """

    _ELEMENTS = (
        E("system_default_tag_set", "systemDefaultTagSet", bool),
        E("tag_set_name", "tagSetName", str),
    )

    system_default_tag_set: bool = Field(type=bool, required=False, mutable=False)
    tag_set_name: str = Field(type=str, required=False, mutable=False)


class SystemDeviceManagementTagModifyRequest(OCIRequest):
    """
    Request to modify a static configuration tag.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        system_default_tag_set: systemDefaultTagSet
        tag_set_name: tagSetName
        tag_name: tagName
        tag_value: tagValue
    """

    _ELEMENTS = (
        E("system_default_tag_set", "systemDefaultTagSet", bool),
        E("tag_set_name", "tagSetName", str),
        E("tag_name", "tagName", str, is_required=True),
        E("tag_value", "tagValue", str),
    )

    system_default_tag_set: bool = Field(type=bool, required=False, mutable=False)
    tag_set_name: str = Field(type=str, required=False, mutable=False)
    tag_name: str = Field(type=str, required=True, mutable=False)
    tag_value: str = Field(type=str, required=False, mutable=False)


class SystemDeviceManagementTagSetAddRequest(OCIRequest):
    """
    Request to add a static configuration tag set.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        tag_set_name: tagSetName
    """

    _ELEMENTS = (
        E("tag_set_name", "tagSetName", str, is_required=True),
    )

    tag_set_name: str = Field(type=str, required=True, mutable=False)


class SystemDeviceManagementTagSetDeleteRequest(OCIRequest):
    """
    Request to delete a static configuration tag set.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        tag_set_name: tagSetName
    """

    _ELEMENTS = (
        E("tag_set_name", "tagSetName", str, is_required=True),
    )

    tag_set_name: str = Field(type=str, required=True, mutable=False)


class SystemDeviceManagementTagSetGetListRequest(OCIRequest):
    """
    Request to get the list of custom configuration tag sets managed by the Device
    Management System.

    The response is either ``SystemDeviceManagementTagSetGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDeviceManagementTagSetModifyRequest(OCIRequest):
    """
    Request to modify a static configuration tag set.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        tag_set_name: tagSetName
        new_tag_set_name: newTagSetName
    """

    _ELEMENTS = (
        E("tag_set_name", "tagSetName", str, is_required=True),
        E("new_tag_set_name", "newTagSetName", str),
    )

    tag_set_name: str = Field(type=str, required=True, mutable=False)
    new_tag_set_name: str = Field(type=str, required=False, mutable=False)


class SystemDeviceProfileAuthenticationLockoutClearAllRequest(OCIRequest):
    """
    Request to clear all device password authentication lockouts in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDeviceProfileAuthenticationPasswordRulesGetRequest(OCIRequest):
    """
    Request to get the system level device profile authentication password rule settings.

    The response is either a
    ``SystemDeviceProfileAuthenticationPasswordRulesGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDeviceProfileAuthenticationPasswordRulesModifyRequest(OCIRequest):
    """
    Request to modify the system level device profile authentication password rule
    settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        disallow_authentication_name: disallowAuthenticationName
        disallow_old_password: disallowOldPassword
        disallow_reversed_old_password: disallowReversedOldPassword
        restrict_min_digits: restrictMinDigits
        min_digits: minDigits
        restrict_min_upper_case_letters: restrictMinUpperCaseLetters
        min_upper_case_letters: minUpperCaseLetters
        restrict_min_lower_case_letters: restrictMinLowerCaseLetters
        min_lower_case_letters: minLowerCaseLetters
        restrict_min_non_alphanumeric_characters: restrictMinNonAlphanumericCharacters
        min_non_alphanumeric_characters: minNonAlphanumericCharacters
        min_length: minLength
        send_permanent_lockout_notification: sendPermanentLockoutNotification
        permanent_lockout_notify_email_address: permanentLockoutNotifyEmailAddress
        device_profile_authentication_lockout_type: deviceProfileAuthenticationLockoutType
        device_profile_temporary_lockout_threshold: deviceProfileTemporaryLockoutThreshold
        device_profile_wait_algorithm: deviceProfileWaitAlgorithm
        device_profile_lockout_fixed_minutes: deviceProfileLockoutFixedMinutes
        device_profile_permanent_lockout_threshold: deviceProfilePermanentLockoutThreshold
    """

    _ELEMENTS = (
        E("disallow_authentication_name", "disallowAuthenticationName", bool),
        E("disallow_old_password", "disallowOldPassword", bool),
        E("disallow_reversed_old_password", "disallowReversedOldPassword", bool),
        E("restrict_min_digits", "restrictMinDigits", bool),
        E("min_digits", "minDigits", int),
        E("restrict_min_upper_case_letters", "restrictMinUpperCaseLetters", bool),
        E("min_upper_case_letters", "minUpperCaseLetters", int),
        E("restrict_min_lower_case_letters", "restrictMinLowerCaseLetters", bool),
        E("min_lower_case_letters", "minLowerCaseLetters", int),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters", bool,
        ),
        E("min_non_alphanumeric_characters", "minNonAlphanumericCharacters", int),
        E("min_length", "minLength", int),
        E("send_permanent_lockout_notification", "sendPermanentLockoutNotification", bool),
        E(
            "permanent_lockout_notify_email_address",
            "permanentLockoutNotifyEmailAddress", str,
        ),
        E(
            "device_profile_authentication_lockout_type",
            "deviceProfileAuthenticationLockoutType", str,
        ),
        E(
            "device_profile_temporary_lockout_threshold",
            "deviceProfileTemporaryLockoutThreshold", int,
        ),
        E("device_profile_wait_algorithm", "deviceProfileWaitAlgorithm", str),
        E("device_profile_lockout_fixed_minutes", "deviceProfileLockoutFixedMinutes", str),
        E(
            "device_profile_permanent_lockout_threshold",
            "deviceProfilePermanentLockoutThreshold", int,
        ),
    )

    disallow_authentication_name: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_password: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_password: bool = Field(type=bool, required=False, mutable=False)
    restrict_min_digits: bool = Field(type=bool, required=False, mutable=False)
    min_digits: int = Field(type=int, required=False, mutable=False)
    restrict_min_upper_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_upper_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_lower_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_lower_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_non_alphanumeric_characters: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_non_alphanumeric_characters: int = Field(type=int, required=False, mutable=False)
    min_length: int = Field(type=int, required=False, mutable=False)
    send_permanent_lockout_notification: bool = Field(
        type=bool, required=False, mutable=False,
    )
    permanent_lockout_notify_email_address: str = Field(
        type=str, required=False, mutable=False,
    )
    device_profile_authentication_lockout_type: str = Field(
        type=str, required=False, mutable=False,
    )
    device_profile_temporary_lockout_threshold: int = Field(
        type=int, required=False, mutable=False,
    )
    device_profile_wait_algorithm: str = Field(type=str, required=False, mutable=False)
    device_profile_lockout_fixed_minutes: str = Field(type=str, required=False, mutable=False)
    device_profile_permanent_lockout_threshold: int = Field(
        type=int, required=False, mutable=False,
    )


class SystemDeviceTypeExportRequest(OCIRequest):
    """
    Request to export an existing Device Type to a Device Type Archive File (DTAF).

    The response is either a ``SystemDeviceTypeExportResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemDeviceTypeGetAvailableListRequest(OCIRequest):
    """
    Requests a list of non-obsolete Identity/device profile types defined in the system.

    It is possible to get either all conference device types or all non-conferernce types.
    This command is similar to the ``SystemSIPDeviceTypeGetListRequest()`` and
    ``SystemMGCPDeviceTypeGetListRequest()`` but gets both SIP and MGCP types.

    The response is either ``SystemDeviceTypeGetlAvailableListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        allow_conference: allowConference
        allow_music_on_hold: allowMusicOnHold
        only_conference: onlyConference
        only_video_capable: onlyVideoCapable
        only_optional_ip_address: onlyOptionalIpAddress
    """

    _ELEMENTS = (
        E("allow_conference", "allowConference", bool, is_required=True),
        E("allow_music_on_hold", "allowMusicOnHold", bool, is_required=True),
        E("only_conference", "onlyConference", bool, is_required=True),
        E("only_video_capable", "onlyVideoCapable", bool, is_required=True),
        E("only_optional_ip_address", "onlyOptionalIpAddress", bool, is_required=True),
    )

    allow_conference: bool = Field(type=bool, required=True, mutable=False)
    allow_music_on_hold: bool = Field(type=bool, required=True, mutable=False)
    only_conference: bool = Field(type=bool, required=True, mutable=False)
    only_video_capable: bool = Field(type=bool, required=True, mutable=False)
    only_optional_ip_address: bool = Field(type=bool, required=True, mutable=False)


class SystemDeviceTypeGetAvailableListRequest14sp1(OCIRequest):
    """
    Requests a list of non-obsolete Identity/device profile types defined in the system.

    It is possible to get either all conference device types or all non-conferernce types.
    This command is similar to the ``SystemSIPDeviceTypeGetListRequest()`` and
    ``SystemMGCPDeviceTypeGetListRequest()`` but gets both SIP and MGCP types.

    The response is either ``SystemDeviceTypeGetlAvailableListResponse14sp1()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemDeviceTypeGetAvailableListRequest14sp3()``

    Attributes:
        allow_conference: allowConference
        allow_music_on_hold: allowMusicOnHold
        only_conference: onlyConference
        only_video_capable: onlyVideoCapable
        only_optional_ip_address: onlyOptionalIpAddress
    """

    _ELEMENTS = (
        E("allow_conference", "allowConference", bool, is_required=True),
        E("allow_music_on_hold", "allowMusicOnHold", bool, is_required=True),
        E("only_conference", "onlyConference", bool, is_required=True),
        E("only_video_capable", "onlyVideoCapable", bool, is_required=True),
        E("only_optional_ip_address", "onlyOptionalIpAddress", bool, is_required=True),
    )

    allow_conference: bool = Field(type=bool, required=True, mutable=False)
    allow_music_on_hold: bool = Field(type=bool, required=True, mutable=False)
    only_conference: bool = Field(type=bool, required=True, mutable=False)
    only_video_capable: bool = Field(type=bool, required=True, mutable=False)
    only_optional_ip_address: bool = Field(type=bool, required=True, mutable=False)


class SystemDeviceTypeGetAvailableListRequest14sp3(OCIRequest):
    """
    Requests a list of non-obsolete Identity/device profile types defined in the system.

    It is possible to get either all conference device types or all non-conferernce types.
    This command is similar to the ``SystemSIPDeviceTypeGetListRequest()`` and
    ``SystemMGCPDeviceTypeGetListRequest()`` but gets both SIP and MGCP types.

    The response is either ``SystemDeviceTypeGetlAvailableListResponse14sp1()`` or
    ``ErrorResponse()``. Replaced by: ``SystemDeviceTypeGetAvailableListRequest19()``.

    Attributes:
        allow_conference: allowConference
        allow_music_on_hold: allowMusicOnHold
        only_conference: onlyConference
        only_video_capable: onlyVideoCapable
        only_optional_ip_address: onlyOptionalIpAddress
    """

    _ELEMENTS = (
        E("allow_conference", "allowConference", bool, is_required=True),
        E("allow_music_on_hold", "allowMusicOnHold", bool, is_required=True),
        E("only_conference", "onlyConference", bool, is_required=True),
        E("only_video_capable", "onlyVideoCapable", bool, is_required=True),
        E("only_optional_ip_address", "onlyOptionalIpAddress", bool, is_required=True),
    )

    allow_conference: bool = Field(type=bool, required=True, mutable=False)
    allow_music_on_hold: bool = Field(type=bool, required=True, mutable=False)
    only_conference: bool = Field(type=bool, required=True, mutable=False)
    only_video_capable: bool = Field(type=bool, required=True, mutable=False)
    only_optional_ip_address: bool = Field(type=bool, required=True, mutable=False)


class SystemDeviceTypeGetAvailableListRequest19(OCIRequest):
    """
    Requests a list of non-obsolete Identity/device profile types defined in the system.

    It is possible to get either all conference device types or all non-conferernce types.
    This command is similar to the ``SystemSIPDeviceTypeGetListRequest()`` and
    ``SystemMGCPDeviceTypeGetListRequest()`` but gets both SIP and MGCP types.

    The response is either ``SystemDeviceTypeGetlAvailableListResponse19()`` or
    ``ErrorResponse()``.

    Attributes:
        allow_conference: allowConference
        allow_music_on_hold: allowMusicOnHold
        only_conference: onlyConference
        only_video_capable: onlyVideoCapable
        only_optional_ip_address: onlyOptionalIpAddress
    """

    _ELEMENTS = (
        E("allow_conference", "allowConference", bool, is_required=True),
        E("allow_music_on_hold", "allowMusicOnHold", bool, is_required=True),
        E("only_conference", "onlyConference", bool, is_required=True),
        E("only_video_capable", "onlyVideoCapable", bool, is_required=True),
        E("only_optional_ip_address", "onlyOptionalIpAddress", bool, is_required=True),
    )

    allow_conference: bool = Field(type=bool, required=True, mutable=False)
    allow_music_on_hold: bool = Field(type=bool, required=True, mutable=False)
    only_conference: bool = Field(type=bool, required=True, mutable=False)
    only_video_capable: bool = Field(type=bool, required=True, mutable=False)
    only_optional_ip_address: bool = Field(type=bool, required=True, mutable=False)


class SystemDeviceTypeGetRequest(OCIRequest):
    """
    Requests the information about the specified device type without regard to whether the
    type is SIP or MGCP.

    The response is either ``SystemDeviceTypeGetResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemDeviceTypeGetRequest14sp3()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemDeviceTypeGetRequest14sp3(OCIRequest):
    """
    Requests the information about the specified device type without regard to whether the
    type is SIP or MGCP.

    The response is either ``SystemDeviceTypeGetResponse14sp3()`` or ``ErrorResponse()``.

    Replaced By: ``SystemDeviceTypeGetRequest14sp6()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemDeviceTypeGetRequest14sp6(OCIRequest):
    """
    Requests the information about the specified device type without regard to whether the
    type is SIP or MGCP.

    The response is either ``SystemDeviceTypeGetResponse14sp6()`` or ``ErrorResponse()``.
    Replaced by: ``SystemDeviceTypeGetRequest16()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemDeviceTypeGetRequest16(OCIRequest):
    """
    Requests the information about the specified device type without regard to whether the
    type is SIP or MGCP.

    The response is either ``SystemDeviceTypeGetResponse16()`` or ``ErrorResponse()``.
    Replaced by: ``SystemDeviceTypeGetRequest16sp1()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemDeviceTypeGetRequest16sp1(OCIRequest):
    """
    Replaced By ``SystemDeviceTypeGetRequest18()``.

    Requests the information about the specified device type without regard to whether the
    type is SIP or MGCP.

    The response is either ``SystemDeviceTypeGetResponse16sp1()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemDeviceTypeGetRequest18(OCIRequest):
    """
    Requests the information about the specified device type without regard to whether the
    type is SIP or MGCP.

    The response is either ``SystemDeviceTypeGetResponse18()`` or ``ErrorResponse()``.
    Note: The elements deviceTypeConfigurationOption applies to SIP device types only.
    Therefore, only present in the response when the device type is SIP. Replaced by:
    ``SystemSIPDeviceTypeGetRequest19()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemDeviceTypeGetRequest19(OCIRequest):
    """
    Requests the information about the specified device type without regard to whether the
    type is SIP or MGCP.

    The response is either ``SystemDeviceTypeGetResponse19()`` or ``ErrorResponse()``.
    Note: The elements deviceTypeConfigurationOption and staticLineOrdering apply to SIP
    device types only.  Therefore, only present in the response when the device type is
    SIP.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemDeviceTypeImportRequest(OCIRequest):
    """
    Request to import a Device Type Archive File (DTAF) as a new Device Type.

    The URL supports the HTTP and the FILE protocols.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        file: file
    """

    _ELEMENTS = (
        E("file", "file", str, is_required=True),
    )

    file: str = Field(type=str, required=True, mutable=False)


class SystemDialPlanPolicyAddAccessCodeRequest(OCIRequest):
    """
    Request to add a system-level Dial Plan Access Code and its all attribues.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        access_code: accessCode
        include_code_for_network_translations_and_routing:
            includeCodeForNetworkTranslationsAndRouting
        include_code_for_screening_services: includeCodeForScreeningServices
        enable_secondary_dial_tone: enableSecondaryDialTone
        description: description
    """

    _ELEMENTS = (
        E("access_code", "accessCode", str, is_required=True),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting", bool, is_required=True,
        ),
        E(
            "include_code_for_screening_services", "includeCodeForScreeningServices",
            bool, is_required=True,
        ),
        E("enable_secondary_dial_tone", "enableSecondaryDialTone", bool, is_required=True),
        E("description", "description", str),
    )

    access_code: str = Field(type=str, required=True, mutable=False)
    include_code_for_network_translations_and_routing: bool = Field(
        type=bool, required=True, mutable=False,
    )
    include_code_for_screening_services: bool = Field(type=bool, required=True, mutable=False)
    enable_secondary_dial_tone: bool = Field(type=bool, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemDialPlanPolicyDeleteAccessCodeRequest(OCIRequest):
    """
    Request to delete a system-level Dial Plan Access Code and its all attribues.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        access_code: accessCode
    """

    _ELEMENTS = (
        E("access_code", "accessCode", str, is_required=True),
    )

    access_code: str = Field(type=str, required=True, mutable=False)


class SystemDialPlanPolicyGetAccessCodeListRequest(OCIRequest):
    """
    Request the system level Access Codes data associated with Dial Plan Policy.

    The response is either a ``SystemDialPlanPolicyGetAccessCodeListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDialPlanPolicyGetAccessCodeRequest(OCIRequest):
    """
    Request access code data associated with system level Dial Plan Policy access codes.

    The response is either a ``SystemDialPlanPolicyGetAccessCodeResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        access_code: accessCode
    """

    _ELEMENTS = (
        E("access_code", "accessCode", str, is_required=True),
    )

    access_code: str = Field(type=str, required=True, mutable=False)


class SystemDialPlanPolicyGetRequest(OCIRequest):
    """
    Request the system level data associated with Dial Plan Policy.

    The response is either a ``SystemDialPlanPolicyGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemDialPlanPolicyGetRequest17()``
    """

    _ELEMENTS = ()


class SystemDialPlanPolicyGetRequest17(OCIRequest):
    """
    Request the system level data associated with Dial Plan Policy.

    The response is either a ``SystemDialPlanPolicyGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDialPlanPolicyModifyAccessCodeRequest(OCIRequest):
    """
    Request to modify a system-level Dial Plan Access Code and its attribues.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        access_code: accessCode
        include_code_for_network_translations_and_routing:
            includeCodeForNetworkTranslationsAndRouting
        include_code_for_screening_services: includeCodeForScreeningServices
        enable_secondary_dial_tone: enableSecondaryDialTone
        description: description
    """

    _ELEMENTS = (
        E("access_code", "accessCode", str, is_required=True),
        E(
            "include_code_for_network_translations_and_routing",
            "includeCodeForNetworkTranslationsAndRouting", bool,
        ),
        E("include_code_for_screening_services", "includeCodeForScreeningServices", bool),
        E("enable_secondary_dial_tone", "enableSecondaryDialTone", bool),
        E("description", "description", str),
    )

    access_code: str = Field(type=str, required=True, mutable=False)
    include_code_for_network_translations_and_routing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    include_code_for_screening_services: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_secondary_dial_tone: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemDialPlanPolicyModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Dial Plan Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        requires_access_code_for_public_calls: requiresAccessCodeForPublicCalls
        allow_e164_public_calls: allowE164PublicCalls
        prefer_e164_number_format_for_callback_services:
            preferE164NumberFormatForCallbackServices
        public_digit_map: publicDigitMap
        private_digit_map: privateDigitMap
    """

    _ELEMENTS = (
        E("requires_access_code_for_public_calls", "requiresAccessCodeForPublicCalls", bool),
        E("allow_e164_public_calls", "allowE164PublicCalls", bool),
        E(
            "prefer_e164_number_format_for_callback_services",
            "preferE164NumberFormatForCallbackServices", bool,
        ),
        E("public_digit_map", "publicDigitMap", str),
        E("private_digit_map", "privateDigitMap", str),
    )

    requires_access_code_for_public_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_e164_public_calls: bool = Field(type=bool, required=False, mutable=False)
    prefer_e164_number_format_for_callback_services: bool = Field(
        type=bool, required=False, mutable=False,
    )
    public_digit_map: str = Field(type=str, required=False, mutable=False)
    private_digit_map: str = Field(type=str, required=False, mutable=False)


class SystemDialableCallerIDCriteriaAddRequest(OCIRequest):
    """
    Add a new Dialable Caller ID Criteria.

    Criteria are added at the bottom of the list with the lowest priority.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
        prefix_digits: prefixDigits
        match_call_type: matchCallType
        match_alternate_call_indicator: matchAlternateCallIndicator
        match_local_category: matchLocalCategory
        match_national_category: matchNationalCategory
        match_interlata_category: matchInterlataCategory
        match_intralata_category: matchIntralataCategory
        match_international_category: matchInternationalCategory
        match_private_category: matchPrivateCategory
        match_emergency_category: matchEmergencyCategory
        match_other_category: matchOtherCategory
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("prefix_digits", "prefixDigits", str),
        E("match_call_type", "matchCallType", str, is_array=True),
        E(
            "match_alternate_call_indicator", "matchAlternateCallIndicator", str,
            is_array=True,
        ),
        E("match_local_category", "matchLocalCategory", bool, is_required=True),
        E("match_national_category", "matchNationalCategory", bool, is_required=True),
        E("match_interlata_category", "matchInterlataCategory", bool, is_required=True),
        E("match_intralata_category", "matchIntralataCategory", bool, is_required=True),
        E(
            "match_international_category", "matchInternationalCategory", bool,
            is_required=True,
        ),
        E("match_private_category", "matchPrivateCategory", bool, is_required=True),
        E("match_emergency_category", "matchEmergencyCategory", bool, is_required=True),
        E("match_other_category", "matchOtherCategory", bool, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    prefix_digits: str = Field(type=str, required=False, mutable=False)
    match_call_type: "List[str]" = Field(type=list, required=False, mutable=False)
    match_alternate_call_indicator: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )
    match_local_category: bool = Field(type=bool, required=True, mutable=False)
    match_national_category: bool = Field(type=bool, required=True, mutable=False)
    match_interlata_category: bool = Field(type=bool, required=True, mutable=False)
    match_intralata_category: bool = Field(type=bool, required=True, mutable=False)
    match_international_category: bool = Field(type=bool, required=True, mutable=False)
    match_private_category: bool = Field(type=bool, required=True, mutable=False)
    match_emergency_category: bool = Field(type=bool, required=True, mutable=False)
    match_other_category: bool = Field(type=bool, required=True, mutable=False)


class SystemDialableCallerIDCriteriaDeleteRequest(OCIRequest):
    """
    Delete a Dialable Caller ID Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemDialableCallerIDCriteriaGetRequest(OCIRequest):
    """
    Get an existing Dialable Caller ID Criteria.

    The response is either a ``SystemDialableCallerIDCriteriaGetRequest()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemDialableCallerIDGetRequest(OCIRequest):
    """
    Get the system level Dialable Caller ID criteria list.

    The response is either a ``SystemDialableCallerIDGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDigitCollectionGetRequest13mp4(OCIRequest):
    """
    Request the system's digit collection attributes.

    The response is either a ``SystemDigitCollectionGetResponse13mp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDigitCollectionModifyRequest(OCIRequest):
    """
    Modifies the system's digit collection attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        access_code: accessCode
        public_digit_map: publicDigitMap
        private_digit_map: privateDigitMap
    """

    _ELEMENTS = (
        E("access_code", "accessCode", str),
        E("public_digit_map", "publicDigitMap", str),
        E("private_digit_map", "privateDigitMap", str),
    )

    access_code: str = Field(type=str, required=False, mutable=False)
    public_digit_map: str = Field(type=str, required=False, mutable=False)
    private_digit_map: str = Field(type=str, required=False, mutable=False)


class SystemDnGetSummaryListRequest(OCIRequest):
    """
    Request a summary table of all DNs in the system.

    The response is either ``SystemDnGetSummaryListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDnGetUtilizationListRequest(OCIRequest):
    """
    Request a list of DN utilizations by service providers.

    The response is either ``SystemDnUtilizationGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDnGetUtilizationRequest(OCIRequest):
    """
    Get the utilization of a single DN.

    The response is either ``SystemDnGetUtilizationResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemDnGetUtilizationRequest14sp3()``

    Attributes:
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    phone_number: str = Field(type=str, required=True, mutable=False)


class SystemDnGetUtilizationRequest14sp3(OCIRequest):
    """
    Get the utilization of a single DN.

    The response is either ``SystemDnGetUtilizationResponse14sp3()`` or
    ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    phone_number: str = Field(type=str, required=True, mutable=False)


class SystemDomainAddRequest(OCIRequest):
    """
    Add a system domain to the system.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        domain: domain
    """

    _ELEMENTS = (
        E("domain", "domain", str, is_required=True),
    )

    domain: str = Field(type=str, required=True, mutable=False)


class SystemDomainDeleteRequest(OCIRequest):
    """
    Delete a system domain from the system.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        domain: domain
    """

    _ELEMENTS = (
        E("domain", "domain", str, is_required=True),
    )

    domain: str = Field(type=str, required=True, mutable=False)


class SystemDomainGetAssignedServiceProviderListRequest(OCIRequest):
    """
    Request a list of service providers that have a given domain assigned.

    The response is either ``SystemDomainGetAssignedServiceProviderListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        domain: domain
    """

    _ELEMENTS = (
        E("domain", "domain", str, is_required=True),
    )

    domain: str = Field(type=str, required=True, mutable=False)


class SystemDomainGetListRequest(OCIRequest):
    """
    Requests the list of all system-level domain names.

    The response is either ``SystemDomainGetListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDomainParametersGetRequest(OCIRequest):
    """
    Request to get the list of system Domain parameters.

    The response is either ``SystemDomainParametersGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemDomainParametersModifyRequest(OCIRequest):
    """
    Request to modify system Domain parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        use_alias_for_domain: useAliasForDomain
        default_domain: defaultDomain
    """

    _ELEMENTS = (
        E("use_alias_for_domain", "useAliasForDomain", bool),
        E("default_domain", "defaultDomain", str),
    )

    use_alias_for_domain: bool = Field(type=bool, required=False, mutable=False)
    default_domain: str = Field(type=str, required=False, mutable=False)


class SystemEmergencyZonesGetRequest(OCIRequest):
    """
    Request the system level data associated with Emergency Zones.

    The response is either a ``SystemEmergencyZonesGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemEmergencyZonesModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Emergency Zones.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        default_from_address: defaultFromAddress
    """

    _ELEMENTS = (
        E("default_from_address", "defaultFromAddress", str),
    )

    default_from_address: str = Field(type=str, required=False, mutable=False)


class SystemEnhancedCallLogsGetRequest(OCIRequest):
    """
    Request the system level data associated with Enhanced Call Logs.

    The response is either a ``SystemEnhancedCallLogsGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemEnhancedCallLogsGetRequest17sp4(OCIRequest):
    """
    Request the system level data associated with Enhanced Call Logs.

    The response is either a ``SystemEnhancedCallLogsGetResponse17sp4()`` or an
    ``ErrorResponse()``. Replaced by:``SystemEnhancedCallLogsGetRequest20sp1()``
    """

    _ELEMENTS = ()


class SystemEnhancedCallLogsGetRequest20sp1(OCIRequest):
    """
    Request the system level data associated with Enhanced Call Logs.

    The response is either a ``SystemEnhancedCallLogsGetResponse20sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemEnhancedCallLogsModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Enhanced Call Logs.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: isSendEnabled server1NetAddress
    server1SendPort server1RetrievePort server2NetAddress server2SendPort
    server2RetrievePort sharedSecret retransmissionDelayMilliSeconds maxTransmissions
    soapTimeoutSeconds useDBS eclQueryApplicationURL eclQueryDataRepositoryURL

    Attributes:
        is_send_enabled: isSendEnabled
        server1_net_address: server1NetAddress
        server1_send_port: server1SendPort
        server1_retrieve_port: server1RetrievePort
        server2_net_address: server2NetAddress
        server2_send_port: server2SendPort
        server2_retrieve_port: server2RetrievePort
        shared_secret: sharedSecret
        retransmission_delay_milli_seconds: retransmissionDelayMilliSeconds
        max_transmissions: maxTransmissions
        soap_timeout_seconds: soapTimeoutSeconds
        use_dbs: useDBS
        max_non_paged_response_size: maxNonPagedResponseSize
        ecl_query_application_url: eclQueryApplicationURL
        ecl_query_data_repository_url: eclQueryDataRepositoryURL
    """

    _ELEMENTS = (
        E("is_send_enabled", "isSendEnabled", bool),
        E("server1_net_address", "server1NetAddress", str),
        E("server1_send_port", "server1SendPort", int),
        E("server1_retrieve_port", "server1RetrievePort", int),
        E("server2_net_address", "server2NetAddress", str),
        E("server2_send_port", "server2SendPort", int),
        E("server2_retrieve_port", "server2RetrievePort", int),
        E("shared_secret", "sharedSecret", str),
        E("retransmission_delay_milli_seconds", "retransmissionDelayMilliSeconds", int),
        E("max_transmissions", "maxTransmissions", int),
        E("soap_timeout_seconds", "soapTimeoutSeconds", int),
        E("use_dbs", "useDBS", bool),
        E("max_non_paged_response_size", "maxNonPagedResponseSize", int),
        E("ecl_query_application_url", "eclQueryApplicationURL", str),
        E("ecl_query_data_repository_url", "eclQueryDataRepositoryURL", str),
    )

    is_send_enabled: bool = Field(type=bool, required=False, mutable=False)
    server1_net_address: str = Field(type=str, required=False, mutable=False)
    server1_send_port: int = Field(type=int, required=False, mutable=False)
    server1_retrieve_port: int = Field(type=int, required=False, mutable=False)
    server2_net_address: str = Field(type=str, required=False, mutable=False)
    server2_send_port: int = Field(type=int, required=False, mutable=False)
    server2_retrieve_port: int = Field(type=int, required=False, mutable=False)
    shared_secret: str = Field(type=str, required=False, mutable=False)
    retransmission_delay_milli_seconds: int = Field(type=int, required=False, mutable=False)
    max_transmissions: int = Field(type=int, required=False, mutable=False)
    soap_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    use_dbs: bool = Field(type=bool, required=False, mutable=False)
    max_non_paged_response_size: int = Field(type=int, required=False, mutable=False)
    ecl_query_application_url: str = Field(type=str, required=False, mutable=False)
    ecl_query_data_repository_url: str = Field(type=str, required=False, mutable=False)


class SystemExecutiveGetRequest(OCIRequest):
    """
    Request to get the Executive system parameters.

    The response is either ``SystemExecutiveGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemExecutiveModifyRequest(OCIRequest):
    """
    Request to modify the Executive system parameters.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        treat_virtual_on_net_calls_as_internal: treatVirtualOnNetCallsAsInternal
    """

    _ELEMENTS = (
        E("treat_virtual_on_net_calls_as_internal", "treatVirtualOnNetCallsAsInternal", bool),
    )

    treat_virtual_on_net_calls_as_internal: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemExpensiveCallNotificationGetRequest(OCIRequest):
    """
    Request to get the expensive call notification service parameters.

    The response is either a ``SystemExpensiveCallNotificationGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemExpensiveCallNotificationModifyRequest(OCIRequest):
    """
    Modify the expensive call notification service parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        enable_post_announcement_delay_timer: enablePostAnnouncementDelayTimer
        post_announcement_delay_seconds: postAnnouncementDelaySeconds
    """

    _ELEMENTS = (
        E("enable_post_announcement_delay_timer", "enablePostAnnouncementDelayTimer", bool),
        E("post_announcement_delay_seconds", "postAnnouncementDelaySeconds", int),
    )

    enable_post_announcement_delay_timer: bool = Field(
        type=bool, required=False, mutable=False,
    )
    post_announcement_delay_seconds: int = Field(type=int, required=False, mutable=False)


class SystemExpensiveCallTypeAddRequest(OCIRequest):
    """
    Add an alternate call indicator to the list of expensive alternate call indicators.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        alternate_call_indicator: alternateCallIndicator
        treatment_audio_file: treatmentAudioFile
    """

    _ELEMENTS = (
        E("alternate_call_indicator", "alternateCallIndicator", str, is_required=True),
        E("treatment_audio_file", "treatmentAudioFile", str),
    )

    alternate_call_indicator: str = Field(type=str, required=True, mutable=False)
    treatment_audio_file: str = Field(type=str, required=False, mutable=False)


class SystemExpensiveCallTypeDeleteRequest(OCIRequest):
    """
    Delete an alternate call indicator from the list of expensive alternate call
    indicators.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        alternate_call_indicator: alternateCallIndicator
    """

    _ELEMENTS = (
        E("alternate_call_indicator", "alternateCallIndicator", str, is_required=True),
    )

    alternate_call_indicator: str = Field(type=str, required=True, mutable=False)


class SystemExpensiveCallTypeGetListRequest(OCIRequest):
    """
    Request to get the list of expensive alternate call indicators in the system.

    The response is either a ``SystemExpensiveCallTypeGetListResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemExpensiveCallTypeGetListRequest16sp1()``
    """

    _ELEMENTS = ()


class SystemExpensiveCallTypeGetListRequest16sp1(OCIRequest):
    """
    Request to get the list of expensive alternate call indicators in the system.

    The response is either a ``SystemExpensiveCallTypeGetListResponse16sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemExpensiveCallTypeModifyRequest(OCIRequest):
    """
    Modify an existing call indicator in the list of expensive alternate call indicators.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        alternate_call_indicator: alternateCallIndicator
        treatment_audio_file: treatmentAudioFile
    """

    _ELEMENTS = (
        E("alternate_call_indicator", "alternateCallIndicator", str, is_required=True),
        E("treatment_audio_file", "treatmentAudioFile", str),
    )

    alternate_call_indicator: str = Field(type=str, required=True, mutable=False)
    treatment_audio_file: str = Field(type=str, required=False, mutable=False)


class SystemExportAddressingDataRequest(OCIRequest):
    """
    Request to export Application Server addressing data, such as DNs, extensions, alias
    and user ids to a file so they can be uploaded to a Network Server.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        file_name: fileName
    """

    _ELEMENTS = (
        E("file_name", "fileName", str, is_required=True),
    )

    file_name: str = Field(type=str, required=True, mutable=False)


class SystemExportBroadCloudDataRequest(OCIRequest):
    """
    Request to export all users that have BroadCloud services, such as user profile
    information and BroadCloud services related information for that user to a file so
    they can be uploaded to a Messaging Server.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        file_name: fileName
    """

    _ELEMENTS = (
        E("file_name", "fileName", str, is_required=True),
    )

    file_name: str = Field(type=str, required=True, mutable=False)


class SystemExportSubscriberRequest(OCIRequest):
    """
    Request subscribers be exported to files on the AS filesystem.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. *****
    Warning *****: This activity should only be done during non-busy hours on the
    secondary provisioning server because this may cause large amounts of data to be
    dumped to disk and it may take some time to execute.
    """

    _ELEMENTS = ()


class SystemExtensionLengthGetRequest(OCIRequest):
    """
    Request the system's extension range.

    The response is either a ``SystemExtensionLengthGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemExtensionLengthModifyRequest(OCIRequest):
    """
    Modify the group's extension length range.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        min_extension_length: minExtensionLength
        max_extension_length: maxExtensionLength
    """

    _ELEMENTS = (
        E("min_extension_length", "minExtensionLength", int),
        E("max_extension_length", "maxExtensionLength", int),
    )

    min_extension_length: int = Field(type=int, required=False, mutable=False)
    max_extension_length: int = Field(type=int, required=False, mutable=False)


class SystemExternalAuthenticationAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the external authentication access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemExternalAuthenticationAddACLEntryRequest14sp2(OCIRequest):
    """
    Add an entry to the external authentication access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemExternalAuthenticationDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the external authentication access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemExternalAuthenticationDeleteACLEntryRequest14sp2(OCIRequest):
    """
    Delete an entry from the external authentication access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemExternalAuthenticationGetACLListRequest(OCIRequest):
    """
    Get the external authentication access control list.

    The response is either ``SystemExternalAuthenticationGetACLListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemExternalAuthenticationModifyACLEntryRequest(OCIRequest):
    """
    Modify an entry from the external authentication access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemExternalAuthenticationModifyACLEntryRequest14sp2(OCIRequest):
    """
    Modify an entry from the external authentication access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemExternalEmergencyRoutingParametersGetRequest13mp13(OCIRequest):
    """
    Request to get the list of External Emergency Routing system parameters.

    The response is either ``SystemExternalEmergencyRoutingParametersGetResponse13mp13()``
    or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemExternalEmergencyRoutingParametersModifyRequest13mp13(OCIRequest):
    """
    Request to modify Call External Emergency Routing system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_uri: serviceURI
        default_emergency_number: defaultEmergencyNumber
        is_active: isActive
        supports_dnssrv: supportsDNSSRV
        connection_timeout_seconds: connectionTimeoutSeconds
    """

    _ELEMENTS = (
        E("service_uri", "serviceURI", str),
        E("default_emergency_number", "defaultEmergencyNumber", str),
        E("is_active", "isActive", bool),
        E("supports_dnssrv", "supportsDNSSRV", bool),
        E("connection_timeout_seconds", "connectionTimeoutSeconds", int),
    )

    service_uri: str = Field(type=str, required=False, mutable=False)
    default_emergency_number: str = Field(type=str, required=False, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    supports_dnssrv: bool = Field(type=bool, required=False, mutable=False)
    connection_timeout_seconds: int = Field(type=int, required=False, mutable=False)


class SystemFeatureAccessCodeGetListRequest(OCIRequest):
    """
    Request to get list of default Feature Access Codes defined on system level.

    The response is either ``SystemFeatureAccessCodeGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemFeatureAccessCodeGetListRequest20(OCIRequest):
    """
    Request to get list of default Feature Access Codes defined on system level.

    The response is either ``SystemFeatureAccessCodeGetListResponse20()`` or
    ``ErrorResponse()``. In release 20 the "Call Recording" FAC name is changed to "Call
    Recording - Start". Replaced by: ``SystemFeatureAccessCodeGetListRequest21()``
    """

    _ELEMENTS = ()


class SystemFeatureAccessCodeGetListRequest21(OCIRequest):
    """
    Request to get list of default Feature Access Codes defined on system level.

    The response is either ``SystemFeatureAccessCodeGetListResponse20()`` or
    ``ErrorResponse()``. In release 20 the "Call Recording" FAC name is changed to "Call
    Recording - Start".
    """

    _ELEMENTS = ()


class SystemFileGetContentRequest(OCIRequest):
    """
    Requests the contents of a file.

    The response is either a ``SystemFileGetContentResponse()`` or an ``ErrorResponse()``.

    Attributes:
        file_name: fileName
    """

    _ELEMENTS = (
        E("file_name", "fileName", str, is_required=True),
    )

    file_name: str = Field(type=str, required=True, mutable=False)


class SystemFileRepositoryDeviceDeleteRequest(OCIRequest):
    """
    Delete a file repository.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemFileRepositoryDeviceGetListRequest(OCIRequest):
    """
    Request the list of file repositories in the system.

    The response is either a ``SystemFileRepositoryDeviceGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemFileRepositoryDeviceGetRequest(OCIRequest):
    """
    Request to get the file repository information.

    The response is either ``SystemFileRepositoryDeviceGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemFileRepositoryDeviceGetRequest16(OCIRequest):
    """
    Request to get the file repository information.

    The response is either ``SystemFileRepositoryDeviceGetResponse16()`` or
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemFileRepositoryDeviceGetRequest20(OCIRequest):
    """
    Request to get the file repository information.

    The response is either ``SystemFileRepositoryDeviceGetResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemFileRepositoryDeviceModifyRequest(OCIRequest):
    """
    Modify a file repository.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
        root_directory: rootDirectory
        secure: secure
        net_address: netAddress
        ftp_passive: ftpPassive
        protocol: protocol
        port: port
        ftp_remote_verification: ftpRemoteVerification
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("root_directory", "rootDirectory", str),
        E("secure", "secure", bool),
        E("net_address", "netAddress", str),
        E("ftp_passive", "ftpPassive", bool),
        E("protocol", "protocol", str),
        E("port", "port", int),
        E("ftp_remote_verification", "ftpRemoteVerification", bool),
    )

    name: str = Field(type=str, required=True, mutable=False)
    root_directory: str = Field(type=str, required=False, mutable=False)
    secure: bool = Field(type=bool, required=False, mutable=False)
    net_address: str = Field(type=str, required=False, mutable=False)
    ftp_passive: bool = Field(type=bool, required=False, mutable=False)
    protocol: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    ftp_remote_verification: bool = Field(type=bool, required=False, mutable=False)


class SystemFileRepositoryDeviceUserAddRequest(OCIRequest):
    """
    Add a new file repository user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        file_repository_name: fileRepositoryName
        user_name: userName
        password: password
        allow_put: allowPut
        allow_delete: allowDelete
        allow_get: allowGet
    """

    _ELEMENTS = (
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
        E("password", "password", str, is_required=True),
        E("allow_put", "allowPut", bool, is_required=True),
        E("allow_delete", "allowDelete", bool, is_required=True),
        E("allow_get", "allowGet", bool, is_required=True),
    )

    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)
    password: str = Field(type=str, required=True, mutable=False)
    allow_put: bool = Field(type=bool, required=True, mutable=False)
    allow_delete: bool = Field(type=bool, required=True, mutable=False)
    allow_get: bool = Field(type=bool, required=True, mutable=False)


class SystemFileRepositoryDeviceUserDeleteRequest(OCIRequest):
    """
    Delete a file repository user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        file_repository_name: fileRepositoryName
        user_name: userName
    """

    _ELEMENTS = (
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
    )

    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)


class SystemFileRepositoryDeviceUserGetListRequest(OCIRequest):
    """
    Request the list of users for a file repository in the system.

    The response is either a ``SystemFileRepositoryDeviceUserGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        file_repository_name: fileRepositoryName
    """

    _ELEMENTS = (
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
    )

    file_repository_name: str = Field(type=str, required=True, mutable=False)


class SystemFileRepositoryDeviceUserGetRequest(OCIRequest):
    """
    Request a user of a file repository in the system.

    The response is either a ``SystemFileRepositoryDeviceUserGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        file_repository_name: fileRepositoryName
        user_name: userName
    """

    _ELEMENTS = (
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
    )

    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)


class SystemFileRepositoryDeviceUserModifyRequest(OCIRequest):
    """
    Modify a file repository user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        file_repository_name: fileRepositoryName
        user_name: userName
        password: password
        allow_put: allowPut
        allow_delete: allowDelete
        allow_get: allowGet
    """

    _ELEMENTS = (
        E("file_repository_name", "fileRepositoryName", str, is_required=True),
        E("user_name", "userName", str, is_required=True),
        E("password", "password", str),
        E("allow_put", "allowPut", bool),
        E("allow_delete", "allowDelete", bool),
        E("allow_get", "allowGet", bool),
    )

    file_repository_name: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=True, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    allow_put: bool = Field(type=bool, required=False, mutable=False)
    allow_delete: bool = Field(type=bool, required=False, mutable=False)
    allow_get: bool = Field(type=bool, required=False, mutable=False)


class SystemGeographicRedundancyPeerSipConnectionMonitoringGetRequest(OCIRequest):
    """
    Request to get the list of Peer SIP Connection system parameters The response is a
    ``SystemGeographicRedundancyPeerSipConnectionMonitoringGetResponse()``.

    """

    _ELEMENTS = ()


class SystemGeographicRedundancyPeerSipConnectionMonitoringModifyRequest(OCIRequest):
    """
    Modify the list of Peer SIP Connection Monitoring system parameters The response is
    either a ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        enabled: enabled
        heartbeat_interval: heartbeatInterval
        heartbeat_timeout: heartbeatTimeout
    """

    _ELEMENTS = (
        E("enabled", "enabled", bool),
        E("heartbeat_interval", "heartbeatInterval", int),
        E("heartbeat_timeout", "heartbeatTimeout", int),
    )

    enabled: bool = Field(type=bool, required=False, mutable=False)
    heartbeat_interval: int = Field(type=int, required=False, mutable=False)
    heartbeat_timeout: int = Field(type=int, required=False, mutable=False)


class SystemGeographicRedundancyProxyGetRequest(OCIRequest):
    """
    Request to get the list of Geographic Redundancy Proxy system parameters The response
    is a ``SystemGeographicRedundancyProxyGetResponse()``.

    """

    _ELEMENTS = ()


class SystemGeographicRedundancyProxyModifyRequest(OCIRequest):
    """
    Modify the list of Geographic Redundancy Proxysystem parameters The response is either
    a ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        enabled: enabled
    """

    _ELEMENTS = (
        E("enabled", "enabled", bool),
    )

    enabled: bool = Field(type=bool, required=False, mutable=False)


class SystemGeographicRedundancyUnreachableFromPrimaryGetUserListRequest(OCIRequest):
    """
    Get the list of users that are unreachable from the primary application server.

    The response is a
    ``SystemGeographicRedundancyUnreachableFromPrimaryGetUserListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemGroupNightForwardingGetRequest(OCIRequest):
    """
    Request to get the Group Night Forwarding system parameters.

    The response is either ``SystemGroupNightForwardingGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemGroupNightForwardingModifyRequest(OCIRequest):
    """
    Request to modify the Group Night Forwarding system parameters.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        night_forward_group_calls_within_enterprise:
            nightForwardGroupCallsWithinEnterprise
    """

    _ELEMENTS = (
        E(
            "night_forward_group_calls_within_enterprise",
            "nightForwardGroupCallsWithinEnterprise", bool,
        ),
    )

    night_forward_group_calls_within_enterprise: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemHolidayScheduleDeleteRequest(OCIRequest):
    """
    Delete a system holiday schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        holiday_schedule_name: holidayScheduleName
    """

    _ELEMENTS = (
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
    )

    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)


class SystemHolidayScheduleGetListRequest(OCIRequest):
    """
    Request a list of all system holiday schedules.

    The response is either a ``SystemHolidayScheduleGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemHolidayScheduleGetRequest(OCIRequest):
    """
    Get a system holiday schedule.

    The response is either a ``SystemHolidayScheduleGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        holiday_schedule_name: holidayScheduleName
    """

    _ELEMENTS = (
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
    )

    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)


class SystemHomeNetworkAddRequest(OCIRequest):
    """
    Add a Home Network.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        msc_address: mscAddress
    """

    _ELEMENTS = (
        E("msc_address", "mscAddress", str, is_required=True),
    )

    msc_address: str = Field(type=str, required=True, mutable=False)


class SystemHomeNetworkDeleteRequest(OCIRequest):
    """
    Delete a Home Network.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        msc_address: mscAddress
    """

    _ELEMENTS = (
        E("msc_address", "mscAddress", str, is_required=True),
    )

    msc_address: str = Field(type=str, required=True, mutable=False)


class SystemHuntGroupGetRequest(OCIRequest):
    """
    Request the system level data associated with Hunt Group.

    The response is either a ``SystemHuntGroupGetResponse()`` or an ``ErrorResponse()``.
    Replaced by: ``SystemHuntGroupGetRequest17()``
    """

    _ELEMENTS = ()


class SystemHuntGroupGetRequest17(OCIRequest):
    """
    Request the system level data associated with Hunt Group.

    The response is either a ``SystemHuntGroupGetResponse()`` or an ``ErrorResponse()``.
    Replaced by ``SystemHuntGroupGetRequest21()``.
    """

    _ELEMENTS = ()


class SystemHuntGroupGetRequest21(OCIRequest):
    """
    Request the system level data associated with Hunt Group.

    The response is either a ``SystemHuntGroupGetResponse21()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemHuntGroupModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Hunt Group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``SystemHuntGroupModifyRequest21()``

    Attributes:
        anonymous_instead_of_private_clid: anonymousInsteadOfPrivateCLID
        remove_hunt_group_name_from_clid: removeHuntGroupNameFromCLID
        uniform_call_distribution_policy_scope: uniformCallDistributionPolicyScope
    """

    _ELEMENTS = (
        E("anonymous_instead_of_private_clid", "anonymousInsteadOfPrivateCLID", bool),
        E("remove_hunt_group_name_from_clid", "removeHuntGroupNameFromCLID", bool),
        E(
            "uniform_call_distribution_policy_scope",
            "uniformCallDistributionPolicyScope", str,
        ),
    )

    anonymous_instead_of_private_clid: bool = Field(type=bool, required=False, mutable=False)
    remove_hunt_group_name_from_clid: bool = Field(type=bool, required=False, mutable=False)
    uniform_call_distribution_policy_scope: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemHuntGroupModifyRequest21(OCIRequest):
    """
    Modify the system level data associated with Hunt Group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        remove_hunt_group_name_from_clid: removeHuntGroupNameFromCLID
        uniform_call_distribution_policy_scope: uniformCallDistributionPolicyScope
        allow_agent_device_initiated_forward: allowAgentDeviceInitiatedForward
    """

    _ELEMENTS = (
        E("remove_hunt_group_name_from_clid", "removeHuntGroupNameFromCLID", bool),
        E(
            "uniform_call_distribution_policy_scope",
            "uniformCallDistributionPolicyScope", str,
        ),
        E("allow_agent_device_initiated_forward", "allowAgentDeviceInitiatedForward", bool),
    )

    remove_hunt_group_name_from_clid: bool = Field(type=bool, required=False, mutable=False)
    uniform_call_distribution_policy_scope: str = Field(
        type=str, required=False, mutable=False,
    )
    allow_agent_device_initiated_forward: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemInCallServiceActivationGetRequest(OCIRequest):
    """
    Request the system's DTMF based in-call service activation trigger attributes.

    The response is either a ``SystemInCallServiceActivationGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemInCallServiceActivationGetRequest17()``
    """

    _ELEMENTS = ()


class SystemInCallServiceActivationGetRequest17(OCIRequest):
    """
    Request the system's DTMF based in-call service activation trigger attributes.

    The response is either a ``SystemInCallServiceActivationGetResponse17()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemInCallServiceActivationModifyRequest(OCIRequest):
    """
    Modifies the system's DTMF based in-call service activation trigger attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``SystemInCallServiceActivationModifyRequest17()``

    Attributes:
        default_activation_digits: defaultActivationDigits
    """

    _ELEMENTS = (
        E("default_activation_digits", "defaultActivationDigits", str),
    )

    default_activation_digits: str = Field(type=str, required=False, mutable=False)


class SystemInCallServiceActivationModifyRequest17(OCIRequest):
    """
    Modifies the system's DTMF based in-call service activation trigger attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        default_flash_activation_digits: defaultFlashActivationDigits
        default_call_transfer_activation_digits: defaultCallTransferActivationDigits
    """

    _ELEMENTS = (
        E("default_flash_activation_digits", "defaultFlashActivationDigits", str),
        E(
            "default_call_transfer_activation_digits",
            "defaultCallTransferActivationDigits", str,
        ),
    )

    default_flash_activation_digits: str = Field(type=str, required=False, mutable=False)
    default_call_transfer_activation_digits: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemIntegratedIMPGetRequest(OCIRequest):
    """
    Get the system Integrated IMP service attributes.

    The response is either ``SystemIntegratedIMPGetResponse()`` or ``ErrorResponse()``.
    Replaced by ``SystemIntegratedIMPGetRequest19()``.
    """

    _ELEMENTS = ()


class SystemIntegratedIMPGetRequest19(OCIRequest):
    """
    Get the system Integrated IMP service attributes.

    The response is either ``SystemIntegratedIMPGetResponse19()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemIntegratedIMPGetRequest21(OCIRequest):
    """
    Get the system Integrated IMP service attributes.

    The response is either ``SystemIntegratedIMPGetResponse19()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemIntegratedIMPModifyRequest(OCIRequest):
    """
    Modify the system Integrated IMP service attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: boshURL

    Attributes:
        service_domain: serviceDomain
        service_port: servicePort
        add_service_provider_in_imp_user_id: addServiceProviderInIMPUserId
        bosh_url: boshURL
        allow_imp_password_retrieval: allowImpPasswordRetrieval
    """

    _ELEMENTS = (
        E("service_domain", "serviceDomain", str),
        E("service_port", "servicePort", int),
        E("add_service_provider_in_imp_user_id", "addServiceProviderInIMPUserId", bool),
        E("bosh_url", "boshURL", str),
        E("allow_imp_password_retrieval", "allowImpPasswordRetrieval", bool),
    )

    service_domain: str = Field(type=str, required=False, mutable=False)
    service_port: int = Field(type=int, required=False, mutable=False)
    add_service_provider_in_imp_user_id: bool = Field(
        type=bool, required=False, mutable=False,
    )
    bosh_url: str = Field(type=str, required=False, mutable=False)
    allow_imp_password_retrieval: bool = Field(type=bool, required=False, mutable=False)


class SystemIntelligentNetworkServiceControlGetRequest14(OCIRequest):
    """
    Request the system level data associated with Intelligent Network Service Control.

    The response is either a ``SystemIntelligentNetworkServiceControlGetResponse14()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemIntelligentNetworkServiceControlModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Intelligent Network Service Control.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        pre_answer_action_timeout_seconds: preAnswerActionTimeoutSeconds
        msg_reject_no_voice_mail: msgRejectNoVoiceMail
        msg_reject_voice_mail: msgRejectVoiceMail
        msg_pre_answer_wait: msgPreAnswerWait
        msg_busy: msgBusy
        msg_release: msgRelease
        msg_no_answer: msgNoAnswer
        msg_ocp_reject: msgOCPReject
        msg_forward_loop: msgForwardLoop
        msg_temporarily_unavailable: msgTemporarilyUnavailable
    """

    _ELEMENTS = (
        E("pre_answer_action_timeout_seconds", "preAnswerActionTimeoutSeconds", int),
        E("msg_reject_no_voice_mail", "msgRejectNoVoiceMail", str),
        E("msg_reject_voice_mail", "msgRejectVoiceMail", str),
        E("msg_pre_answer_wait", "msgPreAnswerWait", str),
        E("msg_busy", "msgBusy", str),
        E("msg_release", "msgRelease", str),
        E("msg_no_answer", "msgNoAnswer", str),
        E("msg_ocp_reject", "msgOCPReject", str),
        E("msg_forward_loop", "msgForwardLoop", str),
        E("msg_temporarily_unavailable", "msgTemporarilyUnavailable", str),
    )

    pre_answer_action_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    msg_reject_no_voice_mail: str = Field(type=str, required=False, mutable=False)
    msg_reject_voice_mail: str = Field(type=str, required=False, mutable=False)
    msg_pre_answer_wait: str = Field(type=str, required=False, mutable=False)
    msg_busy: str = Field(type=str, required=False, mutable=False)
    msg_release: str = Field(type=str, required=False, mutable=False)
    msg_no_answer: str = Field(type=str, required=False, mutable=False)
    msg_ocp_reject: str = Field(type=str, required=False, mutable=False)
    msg_forward_loop: str = Field(type=str, required=False, mutable=False)
    msg_temporarily_unavailable: str = Field(type=str, required=False, mutable=False)


class SystemInterceptUserDeleteDnListRequest(OCIRequest):
    """
    Request to delete an Intercept User number(s) from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        phone_numbers: phoneNumbers
    """

    _ELEMENTS = (
        E("phone_numbers", "phoneNumbers", str, is_required=True),
    )

    phone_numbers: str = Field(type=str, required=True, mutable=False)


class SystemInterceptUserGetDnListRequest(OCIRequest):
    """
    Request to get a list of Intercept User dns defined in the system.

    The response is either a ``SystemInterceptUserGetDnListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemInterceptUserGetRequest(OCIRequest):
    """
    Get the system-level intercept user service settings.

    The response is either a ``SystemInterceptUserGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemInterceptUserModifyDnRequest(OCIRequest):
    """
    Request to modify a Intercept User number's description in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
        description: description
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_required=True),
        E("description", "description", str),
    )

    phone_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemInterceptUserModifyRequest(OCIRequest):
    """
    Modify the system-level intercept user service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        emergency_and_repair_intercept: emergencyAndRepairIntercept
    """

    _ELEMENTS = (
        E("emergency_and_repair_intercept", "emergencyAndRepairIntercept", bool),
    )

    emergency_and_repair_intercept: bool = Field(type=bool, required=False, mutable=False)


class SystemInventoryReportGetRequest(OCIRequest):
    """
    Request the system level data associated with Inventory Report.

    The response is either a ``SystemInventoryReportGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemInventoryReportModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Inventory Report.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        default_from_address: defaultFromAddress
    """

    _ELEMENTS = (
        E("default_from_address", "defaultFromAddress", str),
    )

    default_from_address: str = Field(type=str, required=False, mutable=False)


class SystemLDAPIntegrationGetDirectoryRequest(OCIRequest):
    """
    Request the system level data associated with LDAP Integration.

    The response is either a ``SystemLDAPIntegrationGetDirectoryResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemLDAPIntegrationModifyDirectoryRequest(OCIRequest):
    """
    Modify the system level data associated with LDAP Integration.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        server_net_address: serverNetAddress
        server_port: serverPort
        search_base: searchBase
        use_ssl: useSSL
        require_authentication: requireAuthentication
        authenticated_dn: authenticatedDN
        authenticated_password: authenticatedPassword
        is_sort_enabled: isSortEnabled
        is_paged_result_enabled: isPagedResultEnabled
        search_filter: searchFilter
        include_search_attribute_in_search_filter: includeSearchAttributeInSearchFilter
        column1_attribute_name: column1AttributeName
        column2_attribute_name: column2AttributeName
        column3_attribute_name: column3AttributeName
        column4_attribute_name: column4AttributeName
        column1_label: column1Label
        column2_label: column2Label
        column3_label: column3Label
        column4_label: column4Label
        search_column: searchColumn
    """

    _ELEMENTS = (
        E("server_net_address", "serverNetAddress", str),
        E("server_port", "serverPort", int),
        E("search_base", "searchBase", str),
        E("use_ssl", "useSSL", bool),
        E("require_authentication", "requireAuthentication", bool),
        E("authenticated_dn", "authenticatedDN", str),
        E("authenticated_password", "authenticatedPassword", str),
        E("is_sort_enabled", "isSortEnabled", bool),
        E("is_paged_result_enabled", "isPagedResultEnabled", bool),
        E("search_filter", "searchFilter", str),
        E(
            "include_search_attribute_in_search_filter",
            "includeSearchAttributeInSearchFilter", bool,
        ),
        E("column1_attribute_name", "column1AttributeName", str),
        E("column2_attribute_name", "column2AttributeName", str),
        E("column3_attribute_name", "column3AttributeName", str),
        E("column4_attribute_name", "column4AttributeName", str),
        E("column1_label", "column1Label", str),
        E("column2_label", "column2Label", str),
        E("column3_label", "column3Label", str),
        E("column4_label", "column4Label", str),
        E("search_column", "searchColumn", int),
    )

    server_net_address: str = Field(type=str, required=False, mutable=False)
    server_port: int = Field(type=int, required=False, mutable=False)
    search_base: str = Field(type=str, required=False, mutable=False)
    use_ssl: bool = Field(type=bool, required=False, mutable=False)
    require_authentication: bool = Field(type=bool, required=False, mutable=False)
    authenticated_dn: str = Field(type=str, required=False, mutable=False)
    authenticated_password: str = Field(type=str, required=False, mutable=False)
    is_sort_enabled: bool = Field(type=bool, required=False, mutable=False)
    is_paged_result_enabled: bool = Field(type=bool, required=False, mutable=False)
    search_filter: str = Field(type=str, required=False, mutable=False)
    include_search_attribute_in_search_filter: bool = Field(
        type=bool, required=False, mutable=False,
    )
    column1_attribute_name: str = Field(type=str, required=False, mutable=False)
    column2_attribute_name: str = Field(type=str, required=False, mutable=False)
    column3_attribute_name: str = Field(type=str, required=False, mutable=False)
    column4_attribute_name: str = Field(type=str, required=False, mutable=False)
    column1_label: str = Field(type=str, required=False, mutable=False)
    column2_label: str = Field(type=str, required=False, mutable=False)
    column3_label: str = Field(type=str, required=False, mutable=False)
    column4_label: str = Field(type=str, required=False, mutable=False)
    search_column: int = Field(type=int, required=False, mutable=False)


class SystemLanguageAddRequest(OCIRequest):
    """
    Request to add a language to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        language: language
        locale: locale
        encoding: encoding
    """

    _ELEMENTS = (
        E("language", "language", str, is_required=True),
        E("locale", "locale", str, is_required=True),
        E("encoding", "encoding", str, is_required=True),
    )

    language: str = Field(type=str, required=True, mutable=False)
    locale: str = Field(type=str, required=True, mutable=False)
    encoding: str = Field(type=str, required=True, mutable=False)


class SystemLanguageDeleteRequest(OCIRequest):
    """
    Request to delete a language from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        language: language
    """

    _ELEMENTS = (
        E("language", "language", str, is_required=True),
    )

    language: str = Field(type=str, required=True, mutable=False)


class SystemLanguageGetListRequest(OCIRequest):
    """
    Request the defined languages in the system.

    The response is either a ``SystemLanguageGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemLanguageModifyRequest(OCIRequest):
    """
    Request to modify a language properties in the system.

    If the becomeDefaultLanguage element is present, the language in this request becomes
    the default language for the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        language: language
        become_default_language: becomeDefaultLanguage
        locale: locale
        encoding: encoding
    """

    _ELEMENTS = (
        E("language", "language", str, is_required=True),
        E("become_default_language", "becomeDefaultLanguage", bool),
        E("locale", "locale", str),
        E("encoding", "encoding", str),
    )

    language: str = Field(type=str, required=True, mutable=False)
    become_default_language: bool = Field(type=bool, required=False, mutable=False)
    locale: str = Field(type=str, required=False, mutable=False)
    encoding: str = Field(type=str, required=False, mutable=False)


class SystemLegacyAutomaticCallbackGetLineTypeListRequest(OCIRequest):
    """
    Request the system's legacy automatic callback line type settings.

    The response is either a ``SystemLegacyAutomaticCallbackGetTypeLineListResponse()`` or
    an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemLegacyAutomaticCallbackGetRequest(OCIRequest):
    """
    Request the system's legacy automatic callback attributes.

    The response is either a ``SystemLegacyAutomaticCallbackGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemLegacyAutomaticCallbackModifyLineTypeRequest(OCIRequest):
    """
    Modifies the system's legacy automatic callback line type attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        line_type: lineType
        match_action: matchAction
        no_match_action: noMatchAction
    """

    _ELEMENTS = (
        E("line_type", "lineType", str, is_required=True),
        E("match_action", "matchAction", str),
        E("no_match_action", "noMatchAction", str),
    )

    line_type: str = Field(type=str, required=True, mutable=False)
    match_action: str = Field(type=str, required=False, mutable=False)
    no_match_action: str = Field(type=str, required=False, mutable=False)


class SystemLegacyAutomaticCallbackModifyRequest(OCIRequest):
    """
    Modifies the system's legacy automatic callback attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        max_monitors_per_originator: maxMonitorsPerOriginator
        max_monitors_per_terminator: maxMonitorsPerTerminator
        t2_minutes: t2Minutes
        t4_seconds: t4Seconds
        t5_seconds: t5Seconds
        t6_minutes: t6Minutes
        t7_minutes: t7Minutes
        t8_seconds: t8Seconds
        t_ring_seconds: tRingSeconds
        t10_o_minutes: t10OMinutes
        t10_t_minutes: t10TMinutes
    """

    _ELEMENTS = (
        E("max_monitors_per_originator", "maxMonitorsPerOriginator", int),
        E("max_monitors_per_terminator", "maxMonitorsPerTerminator", int),
        E("t2_minutes", "t2Minutes", int),
        E("t4_seconds", "t4Seconds", int),
        E("t5_seconds", "t5Seconds", int),
        E("t6_minutes", "t6Minutes", int),
        E("t7_minutes", "t7Minutes", int),
        E("t8_seconds", "t8Seconds", int),
        E("t_ring_seconds", "tRingSeconds", int),
        E("t10_o_minutes", "t10OMinutes", int),
        E("t10_t_minutes", "t10TMinutes", int),
    )

    max_monitors_per_originator: int = Field(type=int, required=False, mutable=False)
    max_monitors_per_terminator: int = Field(type=int, required=False, mutable=False)
    t2_minutes: int = Field(type=int, required=False, mutable=False)
    t4_seconds: int = Field(type=int, required=False, mutable=False)
    t5_seconds: int = Field(type=int, required=False, mutable=False)
    t6_minutes: int = Field(type=int, required=False, mutable=False)
    t7_minutes: int = Field(type=int, required=False, mutable=False)
    t8_seconds: int = Field(type=int, required=False, mutable=False)
    t_ring_seconds: int = Field(type=int, required=False, mutable=False)
    t10_o_minutes: int = Field(type=int, required=False, mutable=False)
    t10_t_minutes: int = Field(type=int, required=False, mutable=False)


class SystemLicensingGetRequest(OCIRequest):
    """
    Get all the licensing information.

    The response is either ``SystemLicensingGetResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemLicensingGetRequest14sp3()``
    """

    _ELEMENTS = ()


class SystemLicensingGetRequest14sp3(OCIRequest):
    """
    Get all the licensing information.

    The response is either ``SystemLicensingGetResponse14sp3()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemLicensingGetSystemLicenseListRequest(OCIRequest):
    """
    Request to get the list of system licenses in the system.

    The response is either a ``SystemLicensingGetSystemLicenseListResponse()`` or an
    ``ErrorResponse()``. Replaced by ``SystemLicensingGetSystemLicenseListRequest21()``
    """

    _ELEMENTS = ()


class SystemLicensingGetSystemLicenseListRequest21(OCIRequest):
    """
    Request to get the list of system licenses in the system.

    The response is either a ``SystemLicensingGetSystemLicenseListResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemLicensingReloadRequest(OCIRequest):
    """
    Load a new license file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemLocationBasedCallingRestrictionsGetRequest(OCIRequest):
    """
    Gets system level the Location Based Calling Restrictions attributes.

    The response is either a ``SystemLocationBasedCallingRestrictionsGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemLocationBasedCallingRestrictionsGetRequest17sp3(OCIRequest):
    """
    Gets system level the Location Based Calling Restrictions attributes.

    The response is either a ``SystemLocationBasedCallingRestrictionsGetResponse17sp3()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemLocationBasedCallingRestrictionsModifyRequest(OCIRequest):
    """
    Modifies the system level Location Based Calling Restriction attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        physical_location_indicator: physicalLocationIndicator
        enforce_msc_validation: enforceMscValidation
        enable_office_zone_announcement: enableOfficeZoneAnnouncement
        enhance_office_zone: enhanceOfficeZone
    """

    _ELEMENTS = (
        E("physical_location_indicator", "physicalLocationIndicator", str),
        E("enforce_msc_validation", "enforceMscValidation", bool),
        E("enable_office_zone_announcement", "enableOfficeZoneAnnouncement", bool),
        E("enhance_office_zone", "enhanceOfficeZone", bool),
    )

    physical_location_indicator: str = Field(type=str, required=False, mutable=False)
    enforce_msc_validation: bool = Field(type=bool, required=False, mutable=False)
    enable_office_zone_announcement: bool = Field(type=bool, required=False, mutable=False)
    enhance_office_zone: bool = Field(type=bool, required=False, mutable=False)


class SystemMGCPDeviceTypeGetListRequest(OCIRequest):
    """
    Request to get the list of mgcp device types in the system.

    See Also: ``SystemDeviceTypeGetAvailableListRequest14sp3()``.

    The response is either ``SystemMGCPDeviceTypeGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMGCPDeviceTypeGetRequest(OCIRequest):
    """
    Request to get a mgcp device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemMGCPDeviceTypeGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemMGCPDeviceTypeModifyRequest(OCIRequest):
    """
    Request to modify a mgcp device type.

    In release 14, this is limited to changing the obsolete flag.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        is_obsolete: isObsolete
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("is_obsolete", "isObsolete", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    is_obsolete: bool = Field(type=bool, required=False, mutable=False)


class SystemMailParametersGetRequest(OCIRequest):
    """
    Request to get the list of Mail system parameters.

    The response is either ``SystemMailParametersGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMailParametersModifyRequest(OCIRequest):
    """
    Request to modify Mail system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        primary_server_net_address: primaryServerNetAddress
        secondary_server_net_address: secondaryServerNetAddress
        default_from_address: defaultFromAddress
        default_subject: defaultSubject
        support_dnssrv_for_mail_server_access: supportDNSSRVForMailServerAccess
    """

    _ELEMENTS = (
        E("primary_server_net_address", "primaryServerNetAddress", str),
        E("secondary_server_net_address", "secondaryServerNetAddress", str),
        E("default_from_address", "defaultFromAddress", str),
        E("default_subject", "defaultSubject", str),
        E("support_dnssrv_for_mail_server_access", "supportDNSSRVForMailServerAccess", bool),
    )

    primary_server_net_address: str = Field(type=str, required=False, mutable=False)
    secondary_server_net_address: str = Field(type=str, required=False, mutable=False)
    default_from_address: str = Field(type=str, required=False, mutable=False)
    default_subject: str = Field(type=str, required=False, mutable=False)
    support_dnssrv_for_mail_server_access: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemMaliciousCallTraceGetRequest(OCIRequest):
    """
    Get Malicious Call Trace system parameters and the list of users that use the
    Malicious Call Trace feature.

    The response is either a ``SystemMaliciousCallTraceGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMaliciousCallTraceGetUserListRequest(OCIRequest):
    """
    Request the list of users that use the Malicious Call Trace feature.

    The response is either a ``SystemMaliciousCallTraceGetUserListResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemMaliciousCallTraceGetRequest()``
    """

    _ELEMENTS = ()


class SystemMaliciousCallTraceModifyRequest(OCIRequest):
    """
    Modify a Malicious Call Trace system parameter.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        play_mct_warning_announcement: playMCTWarningAnnouncement
    """

    _ELEMENTS = (
        E("play_mct_warning_announcement", "playMCTWarningAnnouncement", bool),
    )

    play_mct_warning_announcement: bool = Field(type=bool, required=False, mutable=False)


class SystemMediaAddRequest(OCIRequest):
    """
    Request to add a Media to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        media_name: mediaName
        codec_name: codecName
        media_type: mediaType
        bandwidth_enforcement_type: bandwidthEnforcementType
        media_bandwidth: mediaBandwidth
    """

    _ELEMENTS = (
        E("media_name", "mediaName", str, is_required=True),
        E("codec_name", "codecName", str, is_required=True),
        E("media_type", "mediaType", str, is_required=True),
        E("bandwidth_enforcement_type", "bandwidthEnforcementType", str, is_required=True),
        E("media_bandwidth", "mediaBandwidth", int),
    )

    media_name: str = Field(type=str, required=True, mutable=False)
    codec_name: str = Field(type=str, required=True, mutable=False)
    media_type: str = Field(type=str, required=True, mutable=False)
    bandwidth_enforcement_type: str = Field(type=str, required=True, mutable=False)
    media_bandwidth: int = Field(type=int, required=False, mutable=False)


class SystemMediaAddRequest16(OCIRequest):
    """
    Request to add a Media to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        media_name: mediaName
        codec_name: codecName
        media_type: mediaType
        bandwidth_enforcement_type: bandwidthEnforcementType
        media_bandwidth: mediaBandwidth
    """

    _ELEMENTS = (
        E("media_name", "mediaName", str, is_required=True),
        E("codec_name", "codecName", str, is_required=True),
        E("media_type", "mediaType", str, is_required=True),
        E("bandwidth_enforcement_type", "bandwidthEnforcementType", str, is_required=True),
        E("media_bandwidth", "mediaBandwidth", int),
    )

    media_name: str = Field(type=str, required=True, mutable=False)
    codec_name: str = Field(type=str, required=True, mutable=False)
    media_type: str = Field(type=str, required=True, mutable=False)
    bandwidth_enforcement_type: str = Field(type=str, required=True, mutable=False)
    media_bandwidth: int = Field(type=int, required=False, mutable=False)


class SystemMediaDeleteRequest(OCIRequest):
    """
    Request to delete a Media from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        media_name: mediaName
    """

    _ELEMENTS = (
        E("media_name", "mediaName", str, is_required=True),
    )

    media_name: str = Field(type=str, required=True, mutable=False)


class SystemMediaGetListRequest(OCIRequest):
    """
    Request to get a list of media in the system.

    The response is either a ``SystemMediaGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMediaModifyRequest(OCIRequest):
    """
    Request to modify a media.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        media_name: mediaName
        codec_name: codecName
        bandwidth_enforcement_type: bandwidthEnforcementType
        media_bandwidth: mediaBandwidth
    """

    _ELEMENTS = (
        E("media_name", "mediaName", str, is_required=True),
        E("codec_name", "codecName", str),
        E("bandwidth_enforcement_type", "bandwidthEnforcementType", str),
        E("media_bandwidth", "mediaBandwidth", int),
    )

    media_name: str = Field(type=str, required=True, mutable=False)
    codec_name: str = Field(type=str, required=False, mutable=False)
    bandwidth_enforcement_type: str = Field(type=str, required=False, mutable=False)
    media_bandwidth: int = Field(type=int, required=False, mutable=False)


class SystemMediaServerAddRequest14(OCIRequest):
    """
    Request to add a Media Server to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("transport_protocol", "transportProtocol", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemMediaServerDeleteRequest(OCIRequest):
    """
    Request to delete a Media Server from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemMediaServerGetListRequest(OCIRequest):
    """
    Request to get a list of Media Servers defined in the system.

    The response is either a ``SystemMediaServerGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMediaServerModifyRequest(OCIRequest):
    """
    Request to modify a Media Server in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("transport_protocol", "transportProtocol", str),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemMediaServerParametersGetRequest(OCIRequest):
    """
    Request to get the list of Media Server system parameters.

    The response is either ``SystemMediaServerParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMediaServerParametersModifyRequest(OCIRequest):
    """
    Request to modify Media Server system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        media_server_response_timer_milliseconds: mediaServerResponseTimerMilliseconds
        media_server_selection_route_timer_milliseconds:
            mediaServerSelectionRouteTimerMilliseconds
        use_static_media_server_device: useStaticMediaServerDevice
    """

    _ELEMENTS = (
        E(
            "media_server_response_timer_milliseconds",
            "mediaServerResponseTimerMilliseconds", int,
        ),
        E(
            "media_server_selection_route_timer_milliseconds",
            "mediaServerSelectionRouteTimerMilliseconds", int,
        ),
        E("use_static_media_server_device", "useStaticMediaServerDevice", bool),
    )

    media_server_response_timer_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )
    media_server_selection_route_timer_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )
    use_static_media_server_device: bool = Field(type=bool, required=False, mutable=False)


class SystemMediaSetAddRequest(OCIRequest):
    """
    Request to add a Media Set.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        set_name: setName
        media_name: mediaName
    """

    _ELEMENTS = (
        E("set_name", "setName", str, is_required=True),
        E("media_name", "mediaName", str, is_required=True),
    )

    set_name: str = Field(type=str, required=True, mutable=False)
    media_name: str = Field(type=str, required=True, mutable=False)


class SystemMediaSetDeleteRequest(OCIRequest):
    """
    Request to delete a Media Set.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        set_name: setName
    """

    _ELEMENTS = (
        E("set_name", "setName", str, is_required=True),
    )

    set_name: str = Field(type=str, required=True, mutable=False)


class SystemMediaSetGetListRequest(OCIRequest):
    """
    Request to get the list of Media Sets in the system.

    The response is either a ``SystemMediaSetGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMediaSetGetRequest(OCIRequest):
    """
    Request to get a Media Set.

    The response is either a ``SystemMediaSetGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        set_name: setName
    """

    _ELEMENTS = (
        E("set_name", "setName", str, is_required=True),
    )

    set_name: str = Field(type=str, required=True, mutable=False)


class SystemMeetMeConferencingGetRequest(OCIRequest):
    """
    Request the system level data associated with Meet-Me Conferencing functions.

    The response is either a ``SystemMeetMeConferencingGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMeetMeConferencingGetRequest17sp3(OCIRequest):
    """
    Request the system level data associated with Meet-Me Conferencing functions.

    The response is either a ``SystemMeetMeConferencingGetResponse17sp3()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMeetMeConferencingGetRequest18(OCIRequest):
    """
    Request the system level data associated with Meet-Me Conferencing functions.

    The response is either a ``SystemMeetMeConferencingGetResponse18()`` or an
    ``ErrorResponse()``. Replaced by ``SystemMeetMeConferencingGetRequest19()``
    """

    _ELEMENTS = ()


class SystemMeetMeConferencingGetRequest19(OCIRequest):
    """
    Request the system level data associated with Meet-Me Conferencing functions.

    The response is either a ``SystemMeetMeConferencingGetResponse19()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMigratedUsersGetListRequest(OCIRequest):
    """
    Get a list of migrated users.

    The response is either ``SystemLicensingGetResponse14sp3()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMultimediaPolicyGetRequest(OCIRequest):
    """
    Request the system level data associated with Multimedia Policy.

    The response is either a ``SystemMultimediaPolicyGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMultimediaPolicyModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Multimedia Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        restrict_non_audio_video_media_types: restrictNonAudioVideoMediaTypes
    """

    _ELEMENTS = (
        E("restrict_non_audio_video_media_types", "restrictNonAudioVideoMediaTypes", bool),
    )

    restrict_non_audio_video_media_types: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemMusicOnHoldGetRequest(OCIRequest):
    """
    Request the system level data associated with Music On Hold.

    The response is either a ``SystemMusicOnHoldGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemMusicOnHoldModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Music On Hold.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        delay_milliseconds: delayMilliseconds
    """

    _ELEMENTS = (
        E("delay_milliseconds", "delayMilliseconds", int),
    )

    delay_milliseconds: int = Field(type=int, required=False, mutable=False)


class SystemNetworkClassOfServiceDeleteRequest(OCIRequest):
    """
    Delete a Network Class of Service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemNetworkClassOfServiceGetAssignedServiceProviderListRequest(OCIRequest):
    """
    Request a list of service providers that have a given Network Class of Service
    assigned.

    The response is either a
    ``SystemNetworkClassOfServiceGetAssignedServiceProviderListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemNetworkClassOfServiceGetCommunicationBarringProfileUsageListRequest(OCIRequest):
    """
    Get the list of Network Classes of Service that contain a specific Communication
    Barring Profile.

    The response is either a
    ``SystemNetworkClassOfServiceGetCommunicationBarringProfileUsageListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemNetworkClassOfServiceGetListRequest(OCIRequest):
    """
    Get the list of all Network Classes of Service.

    The response is either a ``SystemNetworkClassOfServiceGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNetworkClassOfServiceGetRequest(OCIRequest):
    """
    Get an existing Network Class of Service.

    The response is either a ``SystemNetworkClassOfServiceGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemNetworkClassOfServiceGetRequest17()``

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemNetworkClassOfServiceGetRequest17(OCIRequest):
    """
    Get an existing Network Class of Service.

    The response is either a ``SystemNetworkClassOfServiceGetResponse17()`` or an
    ``ErrorResponse()``. Replaced by ``SystemNetworkClassOfServiceGetRequest19sp1()``

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemNetworkClassOfServiceGetRequest19sp1(OCIRequest):
    """
    Get an existing Network Class of Service.

    The response is either a ``SystemNetworkClassOfServiceGetResponse19sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemNetworkDeviceMonitorParametersGetRequest(OCIRequest):
    """
    Request to get the list of Network Device Polling system parameters.

    The response is either ``SystemNetworkDeviceMonitorParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNetworkDeviceMonitorParametersModifyRequest(OCIRequest):
    """
    Request to modify Network Device Polling system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        polling_interval_minutes: pollingIntervalMinutes
        failed_polling_interval_minutes: failedPollingIntervalMinutes
    """

    _ELEMENTS = (
        E("polling_interval_minutes", "pollingIntervalMinutes", int),
        E("failed_polling_interval_minutes", "failedPollingIntervalMinutes", int),
    )

    polling_interval_minutes: int = Field(type=int, required=False, mutable=False)
    failed_polling_interval_minutes: int = Field(type=int, required=False, mutable=False)


class SystemNetworkProgressionGetRequest(OCIRequest):
    """
    Request the system level data associated with network progression.

    The response is either a ``SystemNetworkProgressionGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNetworkProgressionModifyRequest(OCIRequest):
    """
    Modify the system level data associated with network progression.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        is_active: isActive
        wait_period_seconds: waitPeriodSeconds
    """

    _ELEMENTS = (
        E("is_active", "isActive", bool),
        E("wait_period_seconds", "waitPeriodSeconds", int),
    )

    is_active: bool = Field(type=bool, required=False, mutable=False)
    wait_period_seconds: int = Field(type=int, required=False, mutable=False)


class SystemNetworkRoutingServerAddRequest(OCIRequest):
    """
    Request to add a routing Network Server to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        transport_protocol: transportProtocol
        poll: poll
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("transport_protocol", "transportProtocol", str, is_required=True),
        E("poll", "poll", bool, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=True, mutable=False)
    poll: bool = Field(type=bool, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemNetworkRoutingServerDeleteRequest(OCIRequest):
    """
    Request to delete a routing Network Server from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemNetworkRoutingServerGetListRequest(OCIRequest):
    """
    Request to get a list of routing Network Servers defined in the system.

    The response is either a ``SystemNetworkRoutingServerGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNetworkRoutingServerModifyRequest(OCIRequest):
    """
    Request to modify a routing Network Server in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        transport_protocol: transportProtocol
        poll: poll
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("transport_protocol", "transportProtocol", str),
        E("poll", "poll", bool),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    poll: bool = Field(type=bool, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemNetworkServerSyncParametersGetRequest(OCIRequest):
    """
    Request to get the list of Network Server Sync system parameters.

    The response is either ``SystemNetworkServerSyncParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNetworkServerSyncParametersGetRequest14sp2(OCIRequest):
    """
    Request to get the list of Network Server Sync system parameters.

    The response is either ``SystemNetworkServerSyncParametersGetResponse14sp2()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemNetworkServerSyncParametersGetRequest16()``
    """

    _ELEMENTS = ()


class SystemNetworkServerSyncParametersGetRequest16(OCIRequest):
    """
    Request to get the list of Network Server Sync system parameters.

    The response is either ``SystemNetworkServerSyncParametersGetResponse16()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemNetworkServerSyncParametersGetRequest17sp4()``
    """

    _ELEMENTS = ()


class SystemNetworkServerSyncParametersGetRequest17sp4(OCIRequest):
    """
    Request to get the list of Network Server Sync system parameters.

    The response is either ``SystemNetworkServerSyncParametersGetResponse17sp4()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNetworkServerSyncParametersModifyRequest(OCIRequest):
    """
    Request to modify Network Server Sync system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: syncTrunkGroups

    Attributes:
        enable_sync: enableSync
        sync_line_ports: syncLinePorts
        sync_device_management_info: syncDeviceManagementInfo
        sync_trunk_groups: syncTrunkGroups
    """

    _ELEMENTS = (
        E("enable_sync", "enableSync", bool),
        E("sync_line_ports", "syncLinePorts", bool),
        E("sync_device_management_info", "syncDeviceManagementInfo", bool),
        E("sync_trunk_groups", "syncTrunkGroups", bool),
    )

    enable_sync: bool = Field(type=bool, required=False, mutable=False)
    sync_line_ports: bool = Field(type=bool, required=False, mutable=False)
    sync_device_management_info: bool = Field(type=bool, required=False, mutable=False)
    sync_trunk_groups: bool = Field(type=bool, required=False, mutable=False)


class SystemNetworkSynchingServerAddRequest(OCIRequest):
    """
    Request to add a Network Server to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemNetworkSynchingServerDeleteRequest(OCIRequest):
    """
    Request to delete a Network Server from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemNetworkSynchingServerGetListRequest(OCIRequest):
    """
    Request to get a list of Network Servers defined in the system.

    The response is either a ``SystemNetworkSynchingServerGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNetworkSynchingServerModifyRequest(OCIRequest):
    """
    Request to modify a Network Server in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        description: description
        become_preferred: becomePreferred
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("description", "description", str),
        E("become_preferred", "becomePreferred", bool),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    become_preferred: bool = Field(type=bool, required=False, mutable=False)


class SystemNumberActivationGetRequest(OCIRequest):
    """
    Request to get the Number Activation state.

    The response is either ``SystemNumberActivationGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNumberActivationGetRequest18sp1(OCIRequest):
    """
    Request to get the Number Activation state.

    The response is either ``SystemNumberActivationGetResponse18sp1()`` or
    ``ErrorResponse()``. Replaced by: ``SystemNumberActivationGetRequest21()``
    """

    _ELEMENTS = ()


class SystemNumberActivationGetRequest21(OCIRequest):
    """
    Request to get the number activation state and enterprise trunk number range
    activation status.

    The response is either ``SystemNumberActivationGetResponse21()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNumberActivationModifyRequest(OCIRequest):
    """
    Request to modify system number activation setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        use_number_activation: useNumberActivation
    """

    _ELEMENTS = (
        E("use_number_activation", "useNumberActivation", bool),
    )

    use_number_activation: bool = Field(type=bool, required=False, mutable=False)


class SystemNumberActivationModifyRequest18sp1(OCIRequest):
    """
    Request to modify system number activation and enterprise trunk number range
    activation setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    element values are only applicable in AS data mode: numberActivationMode = Group And
    User Activation Enabled will raise an error in HSS data mode.

    Attributes:
        number_activation_mode: numberActivationMode
        enable_enterprise_trunk_number_range_activation:
            enableEnterpriseTrunkNumberRangeActivation
    """

    _ELEMENTS = (
        E("number_activation_mode", "numberActivationMode", str),
        E(
            "enable_enterprise_trunk_number_range_activation",
            "enableEnterpriseTrunkNumberRangeActivation", bool,
        ),
    )

    number_activation_mode: str = Field(type=str, required=False, mutable=False)
    enable_enterprise_trunk_number_range_activation: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemNumberPortabilityQueryDigitPatternAddRequest(OCIRequest):
    """
    Request to add a System Number Portability Query Status Digit Pattern mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        digit_pattern: digitPattern
        status: status
    """

    _ELEMENTS = (
        E("digit_pattern", "digitPattern", str, is_required=True),
        E("status", "status", str, is_required=True),
    )

    digit_pattern: str = Field(type=str, required=True, mutable=False)
    status: str = Field(type=str, required=True, mutable=False)


class SystemNumberPortabilityQueryDigitPatternDeleteListRequest(OCIRequest):
    """
    Request to delete a list of System Number Portability Status Digit Pattern mappings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        digit_pattern: digitPattern
    """

    _ELEMENTS = (
        E("digit_pattern", "digitPattern", str, is_required=True),
    )

    digit_pattern: str = Field(type=str, required=True, mutable=False)


class SystemNumberPortabilityQueryDigitPatternGetRequest(OCIRequest):
    """
    Request to get a System Number Portability Status Digit Pattern mapping.

    The response is either a ``SystemNumberPortabilityQueryDigitPatternGetResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        digit_pattern: digitPattern
    """

    _ELEMENTS = (
        E("digit_pattern", "digitPattern", str, is_required=True),
    )

    digit_pattern: str = Field(type=str, required=True, mutable=False)


class SystemNumberPortabilityQueryDigitPatternModifyRequest(OCIRequest):
    """
    Request to modify a System Number Portability Status Digit Pattern mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        digit_pattern: digitPattern
        new_digit_pattern: newDigitPattern
        status: status
    """

    _ELEMENTS = (
        E("digit_pattern", "digitPattern", str, is_required=True),
        E("new_digit_pattern", "newDigitPattern", str),
        E("status", "status", str),
    )

    digit_pattern: str = Field(type=str, required=True, mutable=False)
    new_digit_pattern: str = Field(type=str, required=False, mutable=False)
    status: str = Field(type=str, required=False, mutable=False)


class SystemNumberPortabilityQueryGetRequest(OCIRequest):
    """
    Get system Number Portability Query Parameters.

    The response is either ``SystemNumberPortabilityQueryGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNumberPortabilityQueryModifyRequest(OCIRequest):
    """
    Modify system Number Portability Query Parameters.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        continue_call_as_dialed_on_timeout_or_error: continueCallAsDialedOnTimeoutOrError
        number_portability_name_lookup_timeout_milliseconds:
            numberPortabilityNameLookupTimeoutMilliseconds
    """

    _ELEMENTS = (
        E(
            "continue_call_as_dialed_on_timeout_or_error",
            "continueCallAsDialedOnTimeoutOrError", bool,
        ),
        E(
            "number_portability_name_lookup_timeout_milliseconds",
            "numberPortabilityNameLookupTimeoutMilliseconds", int,
        ),
    )

    continue_call_as_dialed_on_timeout_or_error: bool = Field(
        type=bool, required=False, mutable=False,
    )
    number_portability_name_lookup_timeout_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )


class SystemNumberPortabilityQueryStatusAddRequest(OCIRequest):
    """
    Add a system number portability status information.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        status: status
        treatment_file_name: treatmentFileName
    """

    _ELEMENTS = (
        E("status", "status", str, is_required=True),
        E("treatment_file_name", "treatmentFileName", str),
    )

    status: str = Field(type=str, required=True, mutable=False)
    treatment_file_name: str = Field(type=str, required=False, mutable=False)


class SystemNumberPortabilityQueryStatusDeleteListRequest(OCIRequest):
    """
    Delete a list of system number portability query statuses.

    The number of status entries is limited to 100.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        status: status
    """

    _ELEMENTS = (
        E("status", "status", str, is_required=True),
    )

    status: str = Field(type=str, required=True, mutable=False)


class SystemNumberPortabilityQueryStatusGetListRequest(OCIRequest):
    """
    Get a list system Number Portability Query Statuses.

    The response is either ``SystemNumberPortabilityQueryStatusGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemNumberPortabilityQueryStatusGetRequest(OCIRequest):
    """
    Get information for a system Number Portability Query Status.

    The response is either ``SystemNumberPortabilityQueryStatusGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        status: status
    """

    _ELEMENTS = (
        E("status", "status", str, is_required=True),
    )

    status: str = Field(type=str, required=True, mutable=False)


class SystemNumberPortabilityQueryStatusModifyRequest(OCIRequest):
    """
    Modify the system number portability status information.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        status_name: statusName
        new_status_name: newStatusName
        treatment_file_name: treatmentFileName
    """

    _ELEMENTS = (
        E("status_name", "statusName", str, is_required=True),
        E("new_status_name", "newStatusName", str),
        E("treatment_file_name", "treatmentFileName", str),
    )

    status_name: str = Field(type=str, required=True, mutable=False)
    new_status_name: str = Field(type=str, required=False, mutable=False)
    treatment_file_name: str = Field(type=str, required=False, mutable=False)


class SystemOCIAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the OCI access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemOCICallControlAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the OCI call control access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemOCICallControlApplicationAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the OCI call control application access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        application_id: applicationId
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("application_id", "applicationId", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    application_id: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemOCICallControlApplicationAddRequest(OCIRequest):
    """
    Add an application to the OCI call control application list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        application_id: applicationId
        enable_system_wide: enableSystemWide
        description: description
    """

    _ELEMENTS = (
        E("application_id", "applicationId", str, is_required=True),
        E("enable_system_wide", "enableSystemWide", bool, is_required=True),
        E("description", "description", str),
    )

    application_id: str = Field(type=str, required=True, mutable=False)
    enable_system_wide: bool = Field(type=bool, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemOCICallControlApplicationAddRequest14sp9(OCIRequest):
    """
    Add an application to the OCI call control application list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        application_id: applicationId
        enable_system_wide: enableSystemWide
        notification_timeout_seconds: notificationTimeoutSeconds
        description: description
    """

    _ELEMENTS = (
        E("application_id", "applicationId", str, is_required=True),
        E("enable_system_wide", "enableSystemWide", bool, is_required=True),
        E(
            "notification_timeout_seconds", "notificationTimeoutSeconds", int,
            is_required=True,
        ),
        E("description", "description", str),
    )

    application_id: str = Field(type=str, required=True, mutable=False)
    enable_system_wide: bool = Field(type=bool, required=True, mutable=False)
    notification_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemOCICallControlApplicationAddRequest17(OCIRequest):
    """
    Add an application to the OCI call control application list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        application_id: applicationId
        enable_system_wide: enableSystemWide
        notification_timeout_seconds: notificationTimeoutSeconds
        description: description
        max_event_channels_per_set: maxEventChannelsPerSet
    """

    _ELEMENTS = (
        E("application_id", "applicationId", str, is_required=True),
        E("enable_system_wide", "enableSystemWide", bool, is_required=True),
        E(
            "notification_timeout_seconds", "notificationTimeoutSeconds", int,
            is_required=True,
        ),
        E("description", "description", str),
        E("max_event_channels_per_set", "maxEventChannelsPerSet", int, is_required=True),
    )

    application_id: str = Field(type=str, required=True, mutable=False)
    enable_system_wide: bool = Field(type=bool, required=True, mutable=False)
    notification_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    max_event_channels_per_set: int = Field(type=int, required=True, mutable=False)


class SystemOCICallControlApplicationDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the OCI call control application access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        application_id: applicationId
        net_address: netAddress
    """

    _ELEMENTS = (
        E("application_id", "applicationId", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
    )

    application_id: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)


class SystemOCICallControlApplicationDeleteRequest(OCIRequest):
    """
    Delete an entry from the OCI call control application list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        application_id: applicationId
    """

    _ELEMENTS = (
        E("application_id", "applicationId", str, is_required=True),
    )

    application_id: str = Field(type=str, required=True, mutable=False)


class SystemOCICallControlApplicationGetACLListRequest(OCIRequest):
    """
    Get the OCI call control access control list.

    The response is either ``SystemOCICallControlApplicationGetACLListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        application_id: applicationId
    """

    _ELEMENTS = (
        E("application_id", "applicationId", str, is_required=True),
    )

    application_id: str = Field(type=str, required=True, mutable=False)


class SystemOCICallControlApplicationGetListRequest(OCIRequest):
    """
    Get the OCI call control application list.

    The response is either ``SystemOCICallControlApplicationGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemOCICallControlApplicationModifyACLEntryRequest(OCIRequest):
    """
    Modify an entry from the call control access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        application_id: applicationId
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("application_id", "applicationId", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    application_id: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemOCICallControlApplicationModifyRequest(OCIRequest):
    """
    Modify an application from the OCI call control application list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        application_id: applicationId
        enable_system_wide: enableSystemWide
        notification_timeout_seconds: notificationTimeoutSeconds
        description: description
        max_event_channels_per_set: maxEventChannelsPerSet
    """

    _ELEMENTS = (
        E("application_id", "applicationId", str, is_required=True),
        E("enable_system_wide", "enableSystemWide", bool),
        E("notification_timeout_seconds", "notificationTimeoutSeconds", int),
        E("description", "description", str),
        E("max_event_channels_per_set", "maxEventChannelsPerSet", int),
    )

    application_id: str = Field(type=str, required=True, mutable=False)
    enable_system_wide: bool = Field(type=bool, required=False, mutable=False)
    notification_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    max_event_channels_per_set: int = Field(type=int, required=False, mutable=False)


class SystemOCICallControlDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the OCI call control access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemOCICallControlGetACLListRequest(OCIRequest):
    """
    Get the OCI call control access control list.

    The response is either ``SystemOCICallControlGetACLListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemOCICallControlModifyACLEntryRequest(OCIRequest):
    """
    Modify an entry from the call control access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemOCIDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the OCI access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemOCIGetACLListRequest(OCIRequest):
    """
    Get the OCI access control list.

    The response is either ``SystemOCIGetACLListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemOCIModifyACLEntryRequest(OCIRequest):
    """
    Modify an entry in the OCI access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemOCIReportingAddACLEntryRequest13mp9(OCIRequest):
    """
    Add an entry to the OCI Reporting Access Control List.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
        restrict_messages: restrictMessages
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
        E("restrict_messages", "restrictMessages", bool, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    restrict_messages: bool = Field(type=bool, required=True, mutable=False)


class SystemOCIReportingAddMessageNameListRequest(OCIRequest):
    """
    Add a list of reported messages for a host in the OCI Reporting Access Control List.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        message_name_starts_with: messageNameStartsWith
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("message_name_starts_with", "messageNameStartsWith", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    message_name_starts_with: str = Field(type=str, required=True, mutable=False)


class SystemOCIReportingDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the OCI Reporting Access Control List.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemOCIReportingDeleteMessageNameListRequest(OCIRequest):
    """
    Delete a list of reported messages from a host in the OCI Reporting Access Control
    List.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        delete_all_message_names: deleteAllMessageNames
        message_name_starts_with: messageNameStartsWith
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("delete_all_message_names", "deleteAllMessageNames", bool),
        E("message_name_starts_with", "messageNameStartsWith", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    delete_all_message_names: bool = Field(type=bool, required=False, mutable=False)
    message_name_starts_with: str = Field(type=str, required=False, mutable=False)


class SystemOCIReportingGetACLListRequest(OCIRequest):
    """
    Get the OCI Reporting Access Control List.

    The response is either a ``SystemOCIReportingACLListGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemOCIReportingGetMessageNameListRequest(OCIRequest):
    """
    Get a list of restricted messages from a host in the OCI Reporting Access Control
    List.

    The response is either a ``SystemOCIReportingGetMessageNameListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemOCIReportingModifyACLEntryRequest(OCIRequest):
    """
    Modify the description on an entry in the OCI Reporting Access Control List.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
        restrict_messages: restrictMessages
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
        E("restrict_messages", "restrictMessages", bool),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    restrict_messages: bool = Field(type=bool, required=False, mutable=False)


class SystemOCIReportingParametersGetRequest(OCIRequest):
    """
    Request to get the list of OCIReporting system parameters.

    The response is either ``SystemOCIReportingParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemOCIReportingParametersGetRequest14sp1(OCIRequest):
    """
    Request to get the list of OCIReporting system parameters.

    The response is either ``SystemOCIReportingParametersGetResponse14sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemOCIReportingParametersModifyRequest(OCIRequest):
    """
    Request to modify OCI Reporting system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        server_port: serverPort
        enable_connection_ping: enableConnectionPing
        connection_ping_interval_seconds: connectionPingIntervalSeconds
        alter_passwords: alterPasswords
        enable_public_identity_reporting: enablePublicIdentityReporting
    """

    _ELEMENTS = (
        E("server_port", "serverPort", int),
        E("enable_connection_ping", "enableConnectionPing", bool),
        E("connection_ping_interval_seconds", "connectionPingIntervalSeconds", int),
        E("alter_passwords", "alterPasswords", bool),
        E("enable_public_identity_reporting", "enablePublicIdentityReporting", bool),
    )

    server_port: int = Field(type=int, required=False, mutable=False)
    enable_connection_ping: bool = Field(type=bool, required=False, mutable=False)
    connection_ping_interval_seconds: int = Field(type=int, required=False, mutable=False)
    alter_passwords: bool = Field(type=bool, required=False, mutable=False)
    enable_public_identity_reporting: bool = Field(type=bool, required=False, mutable=False)


class SystemOfficeZoneAddRequest(OCIRequest):
    """
    Add a new Office Zone.

    The zoneList is an ordered list with the first member being of the highest priority.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        office_zone_name: officeZoneName
        description: description
        zone_name: zoneName
        primary_zone_name: primaryZoneName
    """

    _ELEMENTS = (
        E("office_zone_name", "officeZoneName", str, is_required=True),
        E("description", "description", str),
        E("zone_name", "zoneName", str, is_required=True),
        E("primary_zone_name", "primaryZoneName", str, is_required=True),
    )

    office_zone_name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    zone_name: str = Field(type=str, required=True, mutable=False)
    primary_zone_name: str = Field(type=str, required=True, mutable=False)


class SystemOfficeZoneDeleteRequest(OCIRequest):
    """
    Delete an Office Zone.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        office_zone_name: officeZoneName
    """

    _ELEMENTS = (
        E("office_zone_name", "officeZoneName", str, is_required=True),
    )

    office_zone_name: str = Field(type=str, required=True, mutable=False)


class SystemOfficeZoneGetAssignedServiceProviderListRequest(OCIRequest):
    """
    Request a list of service providers that have a given Office Zone assigned.

    The response is either a ``SystemOfficeZoneGetAssignedServiceProviderListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        office_zone_name: officeZoneName
    """

    _ELEMENTS = (
        E("office_zone_name", "officeZoneName", str, is_required=True),
    )

    office_zone_name: str = Field(type=str, required=True, mutable=False)


class SystemOfficeZoneGetListRequest(OCIRequest):
    """
    Get the list of all Office Zones.

    The response is either a ``SystemOfficeZoneGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemOfficeZoneGetRequest(OCIRequest):
    """
    Get an existing Office Zone.

    The response is either a ``SystemOfficeZoneGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        office_zone_name: officeZoneName
    """

    _ELEMENTS = (
        E("office_zone_name", "officeZoneName", str, is_required=True),
    )

    office_zone_name: str = Field(type=str, required=True, mutable=False)


class SystemOfficeZoneGetZoneUsageListRequest(OCIRequest):
    """
    Get the list of Office Zones that contain a specific Zone.

    The response is either a ``SystemOfficeZoneGetZoneUsageListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        zone_name: zoneName
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)


class SystemOutgoingCallingPlanCallTypeAddMappingRequest(OCIRequest):
    """
    Add a system outgoing calling plan call type mapping.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        country_code: countryCode
        digit_map: digitMap
        call_type: callType
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str, is_required=True),
        E("digit_map", "digitMap", str, is_required=True),
        E("call_type", "callType", str, is_required=True),
    )

    country_code: str = Field(type=str, required=True, mutable=False)
    digit_map: str = Field(type=str, required=True, mutable=False)
    call_type: str = Field(type=str, required=True, mutable=False)


class SystemOutgoingCallingPlanCallTypeDeleteMappingRequest(OCIRequest):
    """
    Delete a system outgoing calling plan call type mapping.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        country_code: countryCode
        digit_map: digitMap
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str, is_required=True),
        E("digit_map", "digitMap", str, is_required=True),
    )

    country_code: str = Field(type=str, required=True, mutable=False)
    digit_map: str = Field(type=str, required=True, mutable=False)


class SystemOutgoingCallingPlanCallTypeGetListRequest(OCIRequest):
    """
    Request to get the list of call types of outgoing calling plan Response is
    ``SystemOutgoingCallingPlanCallTypeGetListRequest()`` or ``ErrorResponse()``.

    """

    _ELEMENTS = ()


class SystemOutgoingCallingPlanCallTypeGetMappingListRequest(OCIRequest):
    """
    Get a list of system outgoing calling plan call type mappings.

    The response is either ``SystemOutgoingCallingPlanCallTypeGetMappingListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        country_code: countryCode
    """

    _ELEMENTS = (
        E("country_code", "countryCode", str),
    )

    country_code: str = Field(type=str, required=False, mutable=False)


class SystemOutgoingCallingPlanGetRequest(OCIRequest):
    """
    Request the system level data associated with Outgoing Calling Plan.

    The response is either a ``SystemOutgoingCallingPlanGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemOutgoingCallingPlanGetRequest17sp3(OCIRequest):
    """
    Request the system level data associated with Outgoing Calling Plan.

    The response is either a ``SystemOutgoingCallingPlanGetResponse17sp3()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemOutgoingCallingPlanModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Outgoing Calling Plan.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        direct_transfer_screening: directTransferScreening
        enable_enhanced_toll_call_typing: enableEnhancedTollCallTyping
    """

    _ELEMENTS = (
        E("direct_transfer_screening", "directTransferScreening", bool),
        E("enable_enhanced_toll_call_typing", "enableEnhancedTollCallTyping", bool),
    )

    direct_transfer_screening: bool = Field(type=bool, required=False, mutable=False)
    enable_enhanced_toll_call_typing: bool = Field(type=bool, required=False, mutable=False)


class SystemPasswordRulesGetRequest13mp2(OCIRequest):
    """
    Requests the system's password rules setting applicable to System administrator,
    Provisioning Administrator, and/or Service Provider Administrator, Group
    Administrator, Department Administrator, user.

    The response is either ``SystemPasswordRulesGetResponse13mp2()`` or
    ``ErrorResponse()``.

    Replaced By : ``SystemPasswordRulesGetRequest16()``
    """

    _ELEMENTS = ()


class SystemPasswordRulesGetRequest16(OCIRequest):
    """
    Requests the system's password rules setting applicable to System administrator,
    Provisioning Administrator, and/or Service Provider Administrator, Group
    Administrator, Department Administrator, user.

    The response is either ``SystemPasswordRulesGetResponse16()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPasswordRulesModifyRequest(OCIRequest):
    """
    Request to modify the system providers password rule setting applicable to System
    Adminstrator, Provisioning Administrator, and/or Service Provider Administrator, Group
    Administrator, Department Administrator, User.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemPasswordRulesModifyRequest14sp3()``

    Attributes:
        rules_apply_to: rulesApplyTo
        allow_web_add_external_authentication_users:
            allowWebAddExternalAuthenticationUsers
        disallow_user_id: disallowUserId
        disallow_old_password: disallowOldPassword
        disallow_reversed_old_password: disallowReversedOldPassword
        restrict_min_digits: restrictMinDigits
        min_digits: minDigits
        restrict_min_upper_case_letters: restrictMinUpperCaseLetters
        min_upper_case_letters: minUpperCaseLetters
        restrict_min_lower_case_letters: restrictMinLowerCaseLetters
        min_lower_case_letters: minLowerCaseLetters
        restrict_min_non_alphanumeric_characters: restrictMinNonAlphanumericCharacters
        min_non_alphanumeric_characters: minNonAlphanumericCharacters
        min_length: minLength
        max_failed_login_attempts: maxFailedLoginAttempts
        password_expires_days: passwordExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
        disallow_rules_modification: disallowRulesModification
    """

    _ELEMENTS = (
        E("rules_apply_to", "rulesApplyTo", str),
        E(
            "allow_web_add_external_authentication_users",
            "allowWebAddExternalAuthenticationUsers", bool,
        ),
        E("disallow_user_id", "disallowUserId", bool),
        E("disallow_old_password", "disallowOldPassword", bool),
        E("disallow_reversed_old_password", "disallowReversedOldPassword", bool),
        E("restrict_min_digits", "restrictMinDigits", bool),
        E("min_digits", "minDigits", int),
        E("restrict_min_upper_case_letters", "restrictMinUpperCaseLetters", bool),
        E("min_upper_case_letters", "minUpperCaseLetters", int),
        E("restrict_min_lower_case_letters", "restrictMinLowerCaseLetters", bool),
        E("min_lower_case_letters", "minLowerCaseLetters", int),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters", bool,
        ),
        E("min_non_alphanumeric_characters", "minNonAlphanumericCharacters", int),
        E("min_length", "minLength", int),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("password_expires_days", "passwordExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
        E("disallow_rules_modification", "disallowRulesModification", bool),
    )

    rules_apply_to: str = Field(type=str, required=False, mutable=False)
    allow_web_add_external_authentication_users: bool = Field(
        type=bool, required=False, mutable=False,
    )
    disallow_user_id: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_password: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_password: bool = Field(type=bool, required=False, mutable=False)
    restrict_min_digits: bool = Field(type=bool, required=False, mutable=False)
    min_digits: int = Field(type=int, required=False, mutable=False)
    restrict_min_upper_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_upper_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_lower_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_lower_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_non_alphanumeric_characters: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_non_alphanumeric_characters: int = Field(type=int, required=False, mutable=False)
    min_length: int = Field(type=int, required=False, mutable=False)
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    password_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)
    disallow_rules_modification: bool = Field(type=bool, required=False, mutable=False)


class SystemPasswordRulesModifyRequest14sp3(OCIRequest):
    """
    Request to modify the system providers password rule setting applicable to System
    Adminstrator, Provisioning Administrator, and/or Service Provider Administrator, Group
    Administrator, Department Administrator, User.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        rules_apply_to: rulesApplyTo
        allow_web_add_external_authentication_users:
            allowWebAddExternalAuthenticationUsers
        disallow_user_id: disallowUserId
        disallow_old_password: disallowOldPassword
        disallow_reversed_old_password: disallowReversedOldPassword
        restrict_min_digits: restrictMinDigits
        min_digits: minDigits
        restrict_min_upper_case_letters: restrictMinUpperCaseLetters
        min_upper_case_letters: minUpperCaseLetters
        restrict_min_lower_case_letters: restrictMinLowerCaseLetters
        min_lower_case_letters: minLowerCaseLetters
        restrict_min_non_alphanumeric_characters: restrictMinNonAlphanumericCharacters
        min_non_alphanumeric_characters: minNonAlphanumericCharacters
        min_length: minLength
        max_failed_login_attempts: maxFailedLoginAttempts
        password_expires_days: passwordExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
        disallow_previous_passwords: disallowPreviousPasswords
        number_of_previous_passwords: numberOfPreviousPasswords
    """

    _ELEMENTS = (
        E("rules_apply_to", "rulesApplyTo", str),
        E(
            "allow_web_add_external_authentication_users",
            "allowWebAddExternalAuthenticationUsers", bool,
        ),
        E("disallow_user_id", "disallowUserId", bool),
        E("disallow_old_password", "disallowOldPassword", bool),
        E("disallow_reversed_old_password", "disallowReversedOldPassword", bool),
        E("restrict_min_digits", "restrictMinDigits", bool),
        E("min_digits", "minDigits", int),
        E("restrict_min_upper_case_letters", "restrictMinUpperCaseLetters", bool),
        E("min_upper_case_letters", "minUpperCaseLetters", int),
        E("restrict_min_lower_case_letters", "restrictMinLowerCaseLetters", bool),
        E("min_lower_case_letters", "minLowerCaseLetters", int),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters", bool,
        ),
        E("min_non_alphanumeric_characters", "minNonAlphanumericCharacters", int),
        E("min_length", "minLength", int),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("password_expires_days", "passwordExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
        E("disallow_previous_passwords", "disallowPreviousPasswords", bool),
        E("number_of_previous_passwords", "numberOfPreviousPasswords", int),
    )

    rules_apply_to: str = Field(type=str, required=False, mutable=False)
    allow_web_add_external_authentication_users: bool = Field(
        type=bool, required=False, mutable=False,
    )
    disallow_user_id: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_password: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_password: bool = Field(type=bool, required=False, mutable=False)
    restrict_min_digits: bool = Field(type=bool, required=False, mutable=False)
    min_digits: int = Field(type=int, required=False, mutable=False)
    restrict_min_upper_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_upper_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_lower_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_lower_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_non_alphanumeric_characters: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_non_alphanumeric_characters: int = Field(type=int, required=False, mutable=False)
    min_length: int = Field(type=int, required=False, mutable=False)
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    password_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)
    disallow_previous_passwords: bool = Field(type=bool, required=False, mutable=False)
    number_of_previous_passwords: int = Field(type=int, required=False, mutable=False)


class SystemPerformanceMeasurementGenerateReportRequest(OCIRequest):
    """
    Generate a performance measurements report.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPerformanceMeasurementReportingAddFileServerRequest(OCIRequest):
    """
    Add a performance measurements reporting ftp server.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        ftp_host_net_address: ftpHostNetAddress
        ftp_user_id: ftpUserId
        ftp_user_password: ftpUserPassword
        passive_ftp: passiveFTP
    """

    _ELEMENTS = (
        E("ftp_host_net_address", "ftpHostNetAddress", str, is_required=True),
        E("ftp_user_id", "ftpUserId", str, is_required=True),
        E("ftp_user_password", "ftpUserPassword", str, is_required=True),
        E("passive_ftp", "passiveFTP", bool),
    )

    ftp_host_net_address: str = Field(type=str, required=True, mutable=False)
    ftp_user_id: str = Field(type=str, required=True, mutable=False)
    ftp_user_password: str = Field(type=str, required=True, mutable=False)
    passive_ftp: bool = Field(type=bool, required=False, mutable=False)


class SystemPerformanceMeasurementReportingDeleteFileServerRequest(OCIRequest):
    """
    Delete a performance measurements reporting ftp server.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        ftp_host_net_address: ftpHostNetAddress
    """

    _ELEMENTS = (
        E("ftp_host_net_address", "ftpHostNetAddress", str, is_required=True),
    )

    ftp_host_net_address: str = Field(type=str, required=True, mutable=False)


class SystemPerformanceMeasurementReportingGetFileServerListRequest(OCIRequest):
    """
    Requests the list performance measurements reporting ftp servers.

    The response is either
    ``SystemPerformanceMeasurementReportingGetFileServerListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPerformanceMeasurementReportingGetRequest(OCIRequest):
    """
    Requests the performance measurements reporting settings.

    The response is either ``SystemPerformanceMeasurementReportingGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPerformanceMeasurementReportingModifyFileServerRequest(OCIRequest):
    """
    Modify a performance measurements reporting ftp server.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        ftp_host_net_address: ftpHostNetAddress
        passive_ftp: passiveFTP
    """

    _ELEMENTS = (
        E("ftp_host_net_address", "ftpHostNetAddress", str, is_required=True),
        E("passive_ftp", "passiveFTP", bool),
    )

    ftp_host_net_address: str = Field(type=str, required=True, mutable=False)
    passive_ftp: bool = Field(type=bool, required=False, mutable=False)


class SystemPerformanceMeasurementReportingModifyRequest(OCIRequest):
    """
    Modify the performance measurements reporting settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        is_active: isActive
        reporting_interval: reportingInterval
        reset_measurements_after_each_report: resetMeasurementsAfterEachReport
        report_enterprise: reportEnterprise
        report_service_provider: reportServiceProvider
        report_device: reportDevice
    """

    _ELEMENTS = (
        E("is_active", "isActive", bool),
        E("reporting_interval", "reportingInterval", int),
        E("reset_measurements_after_each_report", "resetMeasurementsAfterEachReport", bool),
        E("report_enterprise", "reportEnterprise", bool),
        E("report_service_provider", "reportServiceProvider", bool),
        E("report_device", "reportDevice", bool),
    )

    is_active: bool = Field(type=bool, required=False, mutable=False)
    reporting_interval: int = Field(type=int, required=False, mutable=False)
    reset_measurements_after_each_report: bool = Field(
        type=bool, required=False, mutable=False,
    )
    report_enterprise: bool = Field(type=bool, required=False, mutable=False)
    report_service_provider: bool = Field(type=bool, required=False, mutable=False)
    report_device: bool = Field(type=bool, required=False, mutable=False)


class SystemPersonalAssistantGetRequest(OCIRequest):
    """
    Get system Personal Assistant Parameters.

    The response is either ``SystemPersonalAssistantGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPersonalAssistantModifyRequest(OCIRequest):
    """
    Modify system Personal Assistant Parameters.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        transfer_to_attendant_key: transferToAttendantKey
        transfer_to_voice_messaging_key: transferToVoiceMessagingKey
    """

    _ELEMENTS = (
        E("transfer_to_attendant_key", "transferToAttendantKey", str),
        E("transfer_to_voice_messaging_key", "transferToVoiceMessagingKey", str),
    )

    transfer_to_attendant_key: str = Field(type=str, required=False, mutable=False)
    transfer_to_voice_messaging_key: str = Field(type=str, required=False, mutable=False)


class SystemPhysicalLocationGetRequest(OCIRequest):
    """
    Request to get the list of Physical Location system parameters.

    The response is either ``SystemPhysicalLocationGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPhysicalLocationModifyRequest(OCIRequest):
    """
    Request to modify Physical Location system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        always_allow_emergency_calls: alwaysAllowEmergencyCalls
    """

    _ELEMENTS = (
        E("always_allow_emergency_calls", "alwaysAllowEmergencyCalls", bool),
    )

    always_allow_emergency_calls: bool = Field(type=bool, required=False, mutable=False)


class SystemPolicyGetDefaultRequest14(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse14()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest14sp1(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse14sp1()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemPolicyGetDefaultRequest14sp4()``
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest14sp4(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse14sp4()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest16sp1(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse16sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest16sp2(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse16sp2()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest17(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse17()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest17sp1(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse17sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest17sp3(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse17sp3()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest18(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse18()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest19sp1(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse19sp1()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyGetDefaultRequest20(OCIRequest):
    """
    Requests the system's default policy settings.

    The response is either ``SystemPolicyGetDefaultResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPolicyModifyDefaultRequest14(OCIRequest):
    """
    Request to modify the system's default policy settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: GroupAdminDialableCallerIDAccess
    ServiceProviderAdminDialableCallerIDAccess
    GroupAdminCommunicationBarringUserProfileAccess (This element is only used for groups
    in an Enterprise) GroupAdminVerifyTranslationAndRoutingAccess
    ServiceProviderVerifyTranslationAndRoutingAccess The following elements are only used
    in HSS data mode: serviceProviderAdminCommunicationBarringAccess

    Attributes:
        group_calling_plan_access: groupCallingPlanAccess
        group_extension_access: groupExtensionAccess
        group_ldap_integration_access: groupLDAPIntegrationAccess
        group_voice_messaging_access: groupVoiceMessagingAccess
        group_department_admin_user_access: groupDepartmentAdminUserAccess
        group_department_admin_trunk_group_access: groupDepartmentAdminTrunkGroupAccess
        group_department_admin_phone_number_extension_access:
            groupDepartmentAdminPhoneNumberExtensionAccess
        group_department_admin_calling_line_id_number_access:
            groupDepartmentAdminCallingLineIdNumberAccess
        group_user_authentication_access: groupUserAuthenticationAccess
        group_user_group_directory_access: groupUserGroupDirectoryAccess
        group_user_profile_access: groupUserProfileAccess
        group_user_enhanced_call_logs_access: groupUserEnhancedCallLogsAccess
        group_user_auto_attendant_name_dialing_access:
            groupUserAutoAttendantNameDialingAccess
        group_admin_profile_access: groupAdminProfileAccess
        group_admin_user_access: groupAdminUserAccess
        group_admin_admin_access: groupAdminAdminAccess
        group_admin_department_access: groupAdminDepartmentAccess
        group_admin_access_device_access: groupAdminAccessDeviceAccess
        group_admin_enhanced_service_instance_access:
            groupAdminEnhancedServiceInstanceAccess
        group_admin_feature_access_code_access: groupAdminFeatureAccessCodeAccess
        group_admin_phone_number_extension_access: groupAdminPhoneNumberExtensionAccess
        group_admin_calling_line_id_number_access: groupAdminCallingLineIdNumberAccess
        group_admin_service_access: groupAdminServiceAccess
        group_admin_trunk_group_access: groupAdminTrunkGroupAccess
        group_admin_verify_translation_and_routing_access:
            groupAdminVerifyTranslationAndRoutingAccess
        group_admin_session_admission_control_access:
            groupAdminSessionAdmissionControlAccess
        group_admin_dialable_caller_id_access: groupAdminDialableCallerIDAccess
        group_admin_office_zone_access: groupAdminOfficeZoneAccess
        group_admin_number_activation_access: groupAdminNumberActivationAccess
        group_admin_communication_barring_user_profile_access:
            groupAdminCommunicationBarringUserProfileAccess
        service_provider_admin_profile_access: serviceProviderAdminProfileAccess
        service_provider_admin_group_access: serviceProviderAdminGroupAccess
        service_provider_admin_user_access: serviceProviderAdminUserAccess
        service_provider_admin_admin_access: serviceProviderAdminAdminAccess
        service_provider_admin_department_access: ServiceProviderAdminDepartmentAccess
        service_provider_admin_access_device_access:
            serviceProviderAdminAccessDeviceAccess
        service_provider_admin_phone_number_extension_access:
            serviceProviderAdminPhoneNumberExtensionAccess
        service_provider_admin_calling_line_id_number_access:
            serviceProviderAdminCallingLineIdNumberAccess
        service_provider_admin_service_access: serviceProviderAdminServiceAccess
        service_provider_admin_service_pack_access: serviceProviderAdminServicePackAccess
        service_provider_admin_session_admission_control_access:
            serviceProviderAdminSessionAdmissionControlAccess
        service_provider_admin_verify_translation_and_routing_access:
            serviceProviderAdminVerifyTranslationAndRoutingAccess
        service_provider_admin_web_branding_access: serviceProviderAdminWebBrandingAccess
        service_provider_admin_office_zone_access: serviceProviderAdminOfficeZoneAccess
        service_provider_admin_communication_barring_access:
            serviceProviderAdminCommunicationBarringAccess
        enterprise_admin_network_policy_access: enterpriseAdminNetworkPolicyAccess
        service_provider_admin_dialable_caller_id_access:
            serviceProviderAdminDialableCallerIDAccess
        enterprise_admin_number_activation_access: enterpriseAdminNumberActivationAccess
    """

    _ELEMENTS = (
        E("group_calling_plan_access", "groupCallingPlanAccess", str),
        E("group_extension_access", "groupExtensionAccess", str),
        E("group_ldap_integration_access", "groupLDAPIntegrationAccess", str),
        E("group_voice_messaging_access", "groupVoiceMessagingAccess", str),
        E("group_department_admin_user_access", "groupDepartmentAdminUserAccess", str),
        E(
            "group_department_admin_trunk_group_access",
            "groupDepartmentAdminTrunkGroupAccess", str,
        ),
        E(
            "group_department_admin_phone_number_extension_access",
            "groupDepartmentAdminPhoneNumberExtensionAccess", str,
        ),
        E(
            "group_department_admin_calling_line_id_number_access",
            "groupDepartmentAdminCallingLineIdNumberAccess", str,
        ),
        E("group_user_authentication_access", "groupUserAuthenticationAccess", str),
        E("group_user_group_directory_access", "groupUserGroupDirectoryAccess", str),
        E("group_user_profile_access", "groupUserProfileAccess", str),
        E("group_user_enhanced_call_logs_access", "groupUserEnhancedCallLogsAccess", str),
        E(
            "group_user_auto_attendant_name_dialing_access",
            "groupUserAutoAttendantNameDialingAccess", str,
        ),
        E("group_admin_profile_access", "groupAdminProfileAccess", str),
        E("group_admin_user_access", "groupAdminUserAccess", str),
        E("group_admin_admin_access", "groupAdminAdminAccess", str),
        E("group_admin_department_access", "groupAdminDepartmentAccess", str),
        E("group_admin_access_device_access", "groupAdminAccessDeviceAccess", str),
        E(
            "group_admin_enhanced_service_instance_access",
            "groupAdminEnhancedServiceInstanceAccess", str,
        ),
        E("group_admin_feature_access_code_access", "groupAdminFeatureAccessCodeAccess", str),
        E(
            "group_admin_phone_number_extension_access",
            "groupAdminPhoneNumberExtensionAccess", str,
        ),
        E(
            "group_admin_calling_line_id_number_access",
            "groupAdminCallingLineIdNumberAccess", str,
        ),
        E("group_admin_service_access", "groupAdminServiceAccess", str),
        E("group_admin_trunk_group_access", "groupAdminTrunkGroupAccess", str),
        E(
            "group_admin_verify_translation_and_routing_access",
            "groupAdminVerifyTranslationAndRoutingAccess", str,
        ),
        E(
            "group_admin_session_admission_control_access",
            "groupAdminSessionAdmissionControlAccess", str,
        ),
        E("group_admin_dialable_caller_id_access", "groupAdminDialableCallerIDAccess", str),
        E("group_admin_office_zone_access", "groupAdminOfficeZoneAccess", str),
        E("group_admin_number_activation_access", "groupAdminNumberActivationAccess", str),
        E(
            "group_admin_communication_barring_user_profile_access",
            "groupAdminCommunicationBarringUserProfileAccess", str,
        ),
        E("service_provider_admin_profile_access", "serviceProviderAdminProfileAccess", str),
        E("service_provider_admin_group_access", "serviceProviderAdminGroupAccess", str),
        E("service_provider_admin_user_access", "serviceProviderAdminUserAccess", str),
        E("service_provider_admin_admin_access", "serviceProviderAdminAdminAccess", str),
        E(
            "service_provider_admin_department_access",
            "ServiceProviderAdminDepartmentAccess", str,
        ),
        E(
            "service_provider_admin_access_device_access",
            "serviceProviderAdminAccessDeviceAccess", str,
        ),
        E(
            "service_provider_admin_phone_number_extension_access",
            "serviceProviderAdminPhoneNumberExtensionAccess", str,
        ),
        E(
            "service_provider_admin_calling_line_id_number_access",
            "serviceProviderAdminCallingLineIdNumberAccess", str,
        ),
        E("service_provider_admin_service_access", "serviceProviderAdminServiceAccess", str),
        E(
            "service_provider_admin_service_pack_access",
            "serviceProviderAdminServicePackAccess", str,
        ),
        E(
            "service_provider_admin_session_admission_control_access",
            "serviceProviderAdminSessionAdmissionControlAccess", str,
        ),
        E(
            "service_provider_admin_verify_translation_and_routing_access",
            "serviceProviderAdminVerifyTranslationAndRoutingAccess", str,
        ),
        E(
            "service_provider_admin_web_branding_access",
            "serviceProviderAdminWebBrandingAccess", str,
        ),
        E(
            "service_provider_admin_office_zone_access",
            "serviceProviderAdminOfficeZoneAccess", str,
        ),
        E(
            "service_provider_admin_communication_barring_access",
            "serviceProviderAdminCommunicationBarringAccess", str,
        ),
        E(
            "enterprise_admin_network_policy_access",
            "enterpriseAdminNetworkPolicyAccess", str,
        ),
        E(
            "service_provider_admin_dialable_caller_id_access",
            "serviceProviderAdminDialableCallerIDAccess", str,
        ),
        E(
            "enterprise_admin_number_activation_access",
            "enterpriseAdminNumberActivationAccess", str,
        ),
    )

    group_calling_plan_access: str = Field(type=str, required=False, mutable=False)
    group_extension_access: str = Field(type=str, required=False, mutable=False)
    group_ldap_integration_access: str = Field(type=str, required=False, mutable=False)
    group_voice_messaging_access: str = Field(type=str, required=False, mutable=False)
    group_department_admin_user_access: str = Field(type=str, required=False, mutable=False)
    group_department_admin_trunk_group_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_department_admin_phone_number_extension_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_department_admin_calling_line_id_number_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_user_authentication_access: str = Field(type=str, required=False, mutable=False)
    group_user_group_directory_access: str = Field(type=str, required=False, mutable=False)
    group_user_profile_access: str = Field(type=str, required=False, mutable=False)
    group_user_enhanced_call_logs_access: str = Field(type=str, required=False, mutable=False)
    group_user_auto_attendant_name_dialing_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_admin_profile_access: str = Field(type=str, required=False, mutable=False)
    group_admin_user_access: str = Field(type=str, required=False, mutable=False)
    group_admin_admin_access: str = Field(type=str, required=False, mutable=False)
    group_admin_department_access: str = Field(type=str, required=False, mutable=False)
    group_admin_access_device_access: str = Field(type=str, required=False, mutable=False)
    group_admin_enhanced_service_instance_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_admin_feature_access_code_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_admin_phone_number_extension_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_admin_calling_line_id_number_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_admin_service_access: str = Field(type=str, required=False, mutable=False)
    group_admin_trunk_group_access: str = Field(type=str, required=False, mutable=False)
    group_admin_verify_translation_and_routing_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_admin_session_admission_control_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_admin_dialable_caller_id_access: str = Field(
        type=str, required=False, mutable=False,
    )
    group_admin_office_zone_access: str = Field(type=str, required=False, mutable=False)
    group_admin_number_activation_access: str = Field(type=str, required=False, mutable=False)
    group_admin_communication_barring_user_profile_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_profile_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_group_access: str = Field(type=str, required=False, mutable=False)
    service_provider_admin_user_access: str = Field(type=str, required=False, mutable=False)
    service_provider_admin_admin_access: str = Field(type=str, required=False, mutable=False)
    service_provider_admin_department_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_access_device_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_phone_number_extension_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_calling_line_id_number_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_service_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_service_pack_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_session_admission_control_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_verify_translation_and_routing_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_web_branding_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_office_zone_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_communication_barring_access: str = Field(
        type=str, required=False, mutable=False,
    )
    enterprise_admin_network_policy_access: str = Field(
        type=str, required=False, mutable=False,
    )
    service_provider_admin_dialable_caller_id_access: str = Field(
        type=str, required=False, mutable=False,
    )
    enterprise_admin_number_activation_access: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemPortalAPIAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the Portal API access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemPortalAPIDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the Portal API access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemPortalAPIGetACLListRequest(OCIRequest):
    """
    Get the Portal API access control list.

    The response is either ``SystemPortalAPIGetACLListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPortalAPIModifyACLEntryRequest(OCIRequest):
    """
    Modify an entry within the Portal API access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemPortalPasscodeRulesGetRequest(OCIRequest):
    """
    Requests the system passcode rules setting.

    The response is either ``SystemPortalPasscodeRulesGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPortalPasscodeRulesGetRequest19(OCIRequest):
    """
    Requests the system passcode rules setting.

    The response is either ``SystemPortalPasscodeRulesGetResponse19()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPortalPasscodeRulesModifyRequest(OCIRequest):
    """
    Request to modify the system passcode rules setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: numberOfRepeatedDigits
    disallowRepeatedPatterns disallowContiguousSequences numberOfAscendingDigits
    numberOfDescendingDigits numberOfPreviousPasscodes

    Attributes:
        disallow_repeated_digits: disallowRepeatedDigits
        number_of_repeated_digits: numberOfRepeatedDigits
        disallow_repeated_patterns: disallowRepeatedPatterns
        disallow_contiguous_sequences: disallowContiguousSequences
        number_of_ascending_digits: numberOfAscendingDigits
        number_of_descending_digits: numberOfDescendingDigits
        disallow_user_number: disallowUserNumber
        disallow_reversed_user_number: disallowReversedUserNumber
        disallow_old_passcode: disallowOldPasscode
        number_of_previous_passcodes: numberOfPreviousPasscodes
        disallow_reversed_old_passcode: disallowReversedOldPasscode
        min_code_length: minCodeLength
        max_code_length: maxCodeLength
        disable_login_after_max_failed_login_attempts:
            disableLoginAfterMaxFailedLoginAttempts
        max_failed_login_attempts: maxFailedLoginAttempts
        expire_password: expirePassword
        passcode_expires_days: passcodeExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
        default_password: defaultPassword
    """

    _ELEMENTS = (
        E("disallow_repeated_digits", "disallowRepeatedDigits", bool),
        E("number_of_repeated_digits", "numberOfRepeatedDigits", int),
        E("disallow_repeated_patterns", "disallowRepeatedPatterns", bool),
        E("disallow_contiguous_sequences", "disallowContiguousSequences", bool),
        E("number_of_ascending_digits", "numberOfAscendingDigits", int),
        E("number_of_descending_digits", "numberOfDescendingDigits", int),
        E("disallow_user_number", "disallowUserNumber", bool),
        E("disallow_reversed_user_number", "disallowReversedUserNumber", bool),
        E("disallow_old_passcode", "disallowOldPasscode", bool),
        E("number_of_previous_passcodes", "numberOfPreviousPasscodes", int),
        E("disallow_reversed_old_passcode", "disallowReversedOldPasscode", bool),
        E("min_code_length", "minCodeLength", int),
        E("max_code_length", "maxCodeLength", int),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts", bool,
        ),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("expire_password", "expirePassword", bool),
        E("passcode_expires_days", "passcodeExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
        E("default_password", "defaultPassword", str),
    )

    disallow_repeated_digits: bool = Field(type=bool, required=False, mutable=False)
    number_of_repeated_digits: int = Field(type=int, required=False, mutable=False)
    disallow_repeated_patterns: bool = Field(type=bool, required=False, mutable=False)
    disallow_contiguous_sequences: bool = Field(type=bool, required=False, mutable=False)
    number_of_ascending_digits: int = Field(type=int, required=False, mutable=False)
    number_of_descending_digits: int = Field(type=int, required=False, mutable=False)
    disallow_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    number_of_previous_passcodes: int = Field(type=int, required=False, mutable=False)
    disallow_reversed_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    min_code_length: int = Field(type=int, required=False, mutable=False)
    max_code_length: int = Field(type=int, required=False, mutable=False)
    disable_login_after_max_failed_login_attempts: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    expire_password: bool = Field(type=bool, required=False, mutable=False)
    passcode_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)
    default_password: str = Field(type=str, required=False, mutable=False)


class SystemPreferredCarrierAddRequest(OCIRequest):
    """
    Add a carrier to the system.

    More than one carrier may be assigned to each country code.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        carrier: carrier
        cic: cic
        country_code: countryCode
        is_intra_lata: isIntraLata
        is_inter_lata: isInterLata
        is_international: isInternational
    """

    _ELEMENTS = (
        E("carrier", "carrier", str, is_required=True),
        E("cic", "cic", str, is_required=True),
        E("country_code", "countryCode", str, is_required=True),
        E("is_intra_lata", "isIntraLata", bool, is_required=True),
        E("is_inter_lata", "isInterLata", bool, is_required=True),
        E("is_international", "isInternational", bool, is_required=True),
    )

    carrier: str = Field(type=str, required=True, mutable=False)
    cic: str = Field(type=str, required=True, mutable=False)
    country_code: str = Field(type=str, required=True, mutable=False)
    is_intra_lata: bool = Field(type=bool, required=True, mutable=False)
    is_inter_lata: bool = Field(type=bool, required=True, mutable=False)
    is_international: bool = Field(type=bool, required=True, mutable=False)


class SystemPreferredCarrierDeleteRequest(OCIRequest):
    """
    Delete a carrier from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. An
    ``ErrorResponse()`` is returned if the carrier is in use, or if the carrier didn't
    exist prior to deletion..

    Attributes:
        carrier: carrier
    """

    _ELEMENTS = (
        E("carrier", "carrier", str, is_required=True),
    )

    carrier: str = Field(type=str, required=True, mutable=False)


class SystemPreferredCarrierGetListRequest(OCIRequest):
    """
    Requests a table of all the carriers defined in the system.

    The response is either a ``SystemPreferredCarrierGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemPreferredCarrierGetRequest(OCIRequest):
    """
    Requests the attributes of carrier.

    The response is either a ``SystemPreferreredCarrierGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        carrier: carrier
    """

    _ELEMENTS = (
        E("carrier", "carrier", str, is_required=True),
    )

    carrier: str = Field(type=str, required=True, mutable=False)


class SystemPreferredCarrierModifyRequest(OCIRequest):
    """
    Modify the attributes of a carrier.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. An
    ``ErrorResponse()`` is returned if countryCode modification is attempted while the
    carrier is assigned to a service provider.  An ``ErrorResponse()`` is returned if an
    attempt to set isIntraLata to false is made while the carrier is used as an intra-LATA
    carrier.  An ``ErrorResponse()`` is returned if an attempt to set isInternational to
    false is made while the carrier is used as an international carrier.

    Attributes:
        carrier: carrier
        cic: cic
        country_code: countryCode
        is_intra_lata: isIntraLata
        is_inter_lata: isInterLata
        is_international: isInternational
    """

    _ELEMENTS = (
        E("carrier", "carrier", str, is_required=True),
        E("cic", "cic", str),
        E("country_code", "countryCode", str),
        E("is_intra_lata", "isIntraLata", bool),
        E("is_inter_lata", "isInterLata", bool),
        E("is_international", "isInternational", bool),
    )

    carrier: str = Field(type=str, required=True, mutable=False)
    cic: str = Field(type=str, required=False, mutable=False)
    country_code: str = Field(type=str, required=False, mutable=False)
    is_intra_lata: bool = Field(type=bool, required=False, mutable=False)
    is_inter_lata: bool = Field(type=bool, required=False, mutable=False)
    is_international: bool = Field(type=bool, required=False, mutable=False)


class SystemProvisioningValidationGetRequest(OCIRequest):
    """
    Request to get the system's provisioning validation attributes.

    The response is either a ``SystemProvisioningValidationGetResponse()`` or and
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemProvisioningValidationGetRequest14sp2(OCIRequest):
    """
    Request to get the system's provisioning validation attributes.

    The response is either a ``SystemProvisioningValidationGetResponse14sp2()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemProvisioningValidationModifyRequest(OCIRequest):
    """
    Request to modify the system's provisioning validation attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        is_active: isActive
        is_network_server_query_active: isNetworkServerQueryActive
        timeout_seconds: timeoutSeconds
    """

    _ELEMENTS = (
        E("is_active", "isActive", bool),
        E("is_network_server_query_active", "isNetworkServerQueryActive", bool),
        E("timeout_seconds", "timeoutSeconds", int),
    )

    is_active: bool = Field(type=bool, required=False, mutable=False)
    is_network_server_query_active: bool = Field(type=bool, required=False, mutable=False)
    timeout_seconds: int = Field(type=int, required=False, mutable=False)


class SystemRedundancyParametersGetRequest(OCIRequest):
    """
    Replaced By ``SystemRedundancyParametersGetRequest16sp2()`` Request to get the list of
    Redundancy system parameters.

    The response is either ``SystemRedundancyParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemRedundancyParametersGetRequest16sp2(OCIRequest):
    """
    Request to get the list of Redundancy system parameters.

    The response is either ``SystemRedundancyParametersGetResponse16sp2()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemRedundancyParametersModifyRequest(OCIRequest):
    """
    Request to modify Redundancy system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        roll_back_timer_minutes: rollBackTimerMinutes
        send_sip_option_message_upon_migration: sendSipOptionMessageUponMigration
    """

    _ELEMENTS = (
        E("roll_back_timer_minutes", "rollBackTimerMinutes", int),
        E(
            "send_sip_option_message_upon_migration", "sendSipOptionMessageUponMigration",
            bool,
        ),
    )

    roll_back_timer_minutes: int = Field(type=int, required=False, mutable=False)
    send_sip_option_message_upon_migration: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemRoamingNetworkAddRequest(OCIRequest):
    """
    Add a Roaming Network.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        msc_address: mscAddress
        network_translation_index: networkTranslationIndex
    """

    _ELEMENTS = (
        E("msc_address", "mscAddress", str, is_required=True),
        E("network_translation_index", "networkTranslationIndex", str),
    )

    msc_address: str = Field(type=str, required=True, mutable=False)
    network_translation_index: str = Field(type=str, required=False, mutable=False)


class SystemRoamingNetworkDeleteRequest(OCIRequest):
    """
    Delete a Roaming Network.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        msc_address: mscAddress
    """

    _ELEMENTS = (
        E("msc_address", "mscAddress", str, is_required=True),
    )

    msc_address: str = Field(type=str, required=True, mutable=False)


class SystemRoamingNetworkModifyRequest(OCIRequest):
    """
    Modify a Roaming Network.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        msc_address: mscAddress
        network_translation_index: networkTranslationIndex
    """

    _ELEMENTS = (
        E("msc_address", "mscAddress", str, is_required=True),
        E("network_translation_index", "networkTranslationIndex", str),
    )

    msc_address: str = Field(type=str, required=True, mutable=False)
    network_translation_index: str = Field(type=str, required=False, mutable=False)


class SystemRouteListEnterpriseTrunkNumberRangeGetSummaryListRequest(OCIRequest):
    """
    Request a summary table of all enterprise trunk number ranges in the system.

    The response is either
    ``SystemRouteListEnterpriseTrunkNumberRangeGetSummaryListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemRoutePointExternalSystemAddRequest(OCIRequest):
    """
    Add an Route Point External System, which is a cluster of Application Controllers.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemRoutePointExternalSystemApplicationControllerAddListRequest(OCIRequest):
    """
    Add an application controller to Route Point External System.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        application_controller: applicationController
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("application_controller", "applicationController", str, is_array=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    application_controller: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemRoutePointExternalSystemApplicationControllerDeleteListRequest(OCIRequest):
    """
    Delete an application controller for Route Point External System.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        application_controller: applicationController
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("application_controller", "applicationController", str, is_array=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    application_controller: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemRoutePointExternalSystemApplicationControllerGetRequest(OCIRequest):
    """
    Get a list of Application Controllers assigned to the Route Point External Systems
    specified.

    The response is either
    ``SystemRoutePointExternalSystemApplicationControllerGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        external_system: externalSystem
    """

    _ELEMENTS = (
        E("external_system", "externalSystem", str, is_required=True),
    )

    external_system: str = Field(type=str, required=True, mutable=False)


class SystemRoutePointExternalSystemDeleteRequest(OCIRequest):
    """
    Delete an Route Point External System.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
    )

    name: str = Field(type=str, required=True, mutable=False)


class SystemRoutePointExternalSystemGetListRequest(OCIRequest):
    """
    Get a list of Route Point External Systems that are configured for the system.

    The response is either ``SystemRoutePointExternalSystemGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemRoutePointExternalSystemGetRoutePointListRequest(OCIRequest):
    """
    Get a list of Route Points that are using the specified Route Point External System.

    The response is either a ``SystemRoutePointExternalSystemGetRoutePointListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        route_point_external_system: routePointExternalSystem
    """

    _ELEMENTS = (
        E("route_point_external_system", "routePointExternalSystem", str, is_required=True),
    )

    route_point_external_system: str = Field(type=str, required=True, mutable=False)


class SystemRoutePointExternalSystemModifyRequest(OCIRequest):
    """
    Modify an Route Point External System.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        description: description
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemRoutingAddRouteDeviceRequest14(OCIRequest):
    """
    Request to add a routing device to a route.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        route_name: routeName
        net_address: netAddress
        port: port
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("route_name", "routeName", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("transport_protocol", "transportProtocol", str, is_required=True),
        E("description", "description", str),
    )

    route_name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemRoutingAddRouteRequest(OCIRequest):
    """
    Request to add a route to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        route_name: routeName
    """

    _ELEMENTS = (
        E("route_name", "routeName", str, is_required=True),
    )

    route_name: str = Field(type=str, required=True, mutable=False)


class SystemRoutingAddTranslationRequest(OCIRequest):
    """
    Request to add a digit routing table entry to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        digits: digits
        route_name: routeName
    """

    _ELEMENTS = (
        E("digits", "digits", str, is_required=True),
        E("route_name", "routeName", str, is_required=True),
    )

    digits: str = Field(type=str, required=True, mutable=False)
    route_name: str = Field(type=str, required=True, mutable=False)


class SystemRoutingDeleteRouteDeviceRequest(OCIRequest):
    """
    Request to delete a routing device from a route.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        route_name: routeName
        net_address: netAddress
        port: port
    """

    _ELEMENTS = (
        E("route_name", "routeName", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
    )

    route_name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)


class SystemRoutingDeleteRouteRequest(OCIRequest):
    """
    Request to delete a route from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        route_name: routeName
    """

    _ELEMENTS = (
        E("route_name", "routeName", str, is_required=True),
    )

    route_name: str = Field(type=str, required=True, mutable=False)


class SystemRoutingDeleteTranslationRequest(OCIRequest):
    """
    Request to delete a digit routing table entry from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        digits: digits
    """

    _ELEMENTS = (
        E("digits", "digits", str, is_required=True),
    )

    digits: str = Field(type=str, required=True, mutable=False)


class SystemRoutingGetRequest(OCIRequest):
    """
    Request the system's general routing attributes.

    The response is either a ``SystemRoutingGetResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemRoutingGetRouteDeviceListRequest(OCIRequest):
    """
    Request to get a list of devices for a route.

    The response is either a ``SystemRoutingGetRouteDeviceListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        route_name: routeName
    """

    _ELEMENTS = (
        E("route_name", "routeName", str, is_required=True),
    )

    route_name: str = Field(type=str, required=True, mutable=False)


class SystemRoutingGetRouteListRequest(OCIRequest):
    """
    Request to get a list of routes in the system.

    The response is either a ``SystemRoutingGetRouteListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemRoutingGetTranslationListRequest(OCIRequest):
    """
    Request to get the system digit routing table.

    The response is either a ``SystemRoutingGetTranslationListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemRoutingModifyRequest(OCIRequest):
    """
    Modifies the system's general routing attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        is_route_round_robin: isRouteRoundRobin
        route_timer_seconds: routeTimerSeconds
        dns_resolved_address_selection_policy: dnsResolvedAddressSelectionPolicy
        stateful_expiration_minutes: statefulExpirationMinutes
        max_addresses_per_hostname: maxAddressesPerHostname
        max_addresses_during_setup: maxAddressesDuringSetup
    """

    _ELEMENTS = (
        E("is_route_round_robin", "isRouteRoundRobin", bool),
        E("route_timer_seconds", "routeTimerSeconds", int),
        E("dns_resolved_address_selection_policy", "dnsResolvedAddressSelectionPolicy", str),
        E("stateful_expiration_minutes", "statefulExpirationMinutes", int),
        E("max_addresses_per_hostname", "maxAddressesPerHostname", int),
        E("max_addresses_during_setup", "maxAddressesDuringSetup", int),
    )

    is_route_round_robin: bool = Field(type=bool, required=False, mutable=False)
    route_timer_seconds: int = Field(type=int, required=False, mutable=False)
    dns_resolved_address_selection_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    stateful_expiration_minutes: int = Field(type=int, required=False, mutable=False)
    max_addresses_per_hostname: int = Field(type=int, required=False, mutable=False)
    max_addresses_during_setup: int = Field(type=int, required=False, mutable=False)


class SystemRoutingModifyRouteDeviceRequest(OCIRequest):
    """
    Request to modify a routing device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        route_name: routeName
        net_address: netAddress
        port: port
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("route_name", "routeName", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("transport_protocol", "transportProtocol", str),
        E("description", "description", str),
    )

    route_name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemRoutingModifyTranslationRequest(OCIRequest):
    """
    Request to modify a digit routing table entry in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        digits: digits
        route_name: routeName
    """

    _ELEMENTS = (
        E("digits", "digits", str, is_required=True),
        E("route_name", "routeName", str),
    )

    digits: str = Field(type=str, required=True, mutable=False)
    route_name: str = Field(type=str, required=False, mutable=False)


class SystemRoutingProfileGetListRequest(OCIRequest):
    """
    Request to get the list of system routing profiles.

    The response is either a ``SystemRoutingProfileGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSIPAddACLEntryRequest14(OCIRequest):
    """
    Add an entry to the SIP access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("transport_protocol", "transportProtocol", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    transport_protocol: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSIPAddACLEntryRequest14sp2(OCIRequest):
    """
    Add an entry to the SIP access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("transport_protocol", "transportProtocol", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    transport_protocol: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSIPAddContentTypeRequest(OCIRequest):
    """
    Add a content type for the SIP interface.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        content_type: contentType
        interface: interface
    """

    _ELEMENTS = (
        E("content_type", "contentType", str, is_required=True),
        E("interface", "interface", str, is_required=True),
    )

    content_type: str = Field(type=str, required=True, mutable=False)
    interface: str = Field(type=str, required=True, mutable=False)


class SystemSIPAuthenticationLockoutClearAllRequest(OCIRequest):
    """
    Request to clear all sip authentication lockouts (both endpoint and trunk group) in
    the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSIPAuthenticationPasswordRulesGetRequest(OCIRequest):
    """
    Request to get the system level SIP authentication password rule settings.

    The response is either a ``SystemSIPAuthenticationPasswordRulesGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSIPAuthenticationPasswordRulesModifyRequest(OCIRequest):
    """
    Request to modify the system level SIP authentication password rule settings The
    response is either ``SuccessResponse()`` or ``ErrorResponse()``.


    Attributes:
        disallow_authentication_name: disallowAuthenticationName
        disallow_old_password: disallowOldPassword
        disallow_reversed_old_password: disallowReversedOldPassword
        restrict_min_digits: restrictMinDigits
        min_digits: minDigits
        restrict_min_upper_case_letters: restrictMinUpperCaseLetters
        min_upper_case_letters: minUpperCaseLetters
        restrict_min_lower_case_letters: restrictMinLowerCaseLetters
        min_lower_case_letters: minLowerCaseLetters
        restrict_min_non_alphanumeric_characters: restrictMinNonAlphanumericCharacters
        min_non_alphanumeric_characters: minNonAlphanumericCharacters
        min_length: minLength
        send_permanent_lockout_notification: sendPermanentLockoutNotification
        permanent_lockout_notify_email_address: permanentLockoutNotifyEmailAddress
        endpoint_authentication_lockout_type: endpointAuthenticationLockoutType
        endpoint_temporary_lockout_threshold: endpointTemporaryLockoutThreshold
        endpoint_wait_algorithm: endpointWaitAlgorithm
        endpoint_lockout_fixed_minutes: endpointLockoutFixedMinutes
        endpoint_permanent_lockout_threshold: endpointPermanentLockoutThreshold
        trunk_group_authentication_lockout_type: trunkGroupAuthenticationLockoutType
        trunk_group_temporary_lockout_threshold: trunkGroupTemporaryLockoutThreshold
        trunk_group_wait_algorithm: trunkGroupWaitAlgorithm
        trunk_group_lockout_fixed_minutes: trunkGroupLockoutFixedMinutes
        trunk_group_permanent_lockout_threshold: trunkGroupPermanentLockoutThreshold
    """

    _ELEMENTS = (
        E("disallow_authentication_name", "disallowAuthenticationName", bool),
        E("disallow_old_password", "disallowOldPassword", bool),
        E("disallow_reversed_old_password", "disallowReversedOldPassword", bool),
        E("restrict_min_digits", "restrictMinDigits", bool),
        E("min_digits", "minDigits", int),
        E("restrict_min_upper_case_letters", "restrictMinUpperCaseLetters", bool),
        E("min_upper_case_letters", "minUpperCaseLetters", int),
        E("restrict_min_lower_case_letters", "restrictMinLowerCaseLetters", bool),
        E("min_lower_case_letters", "minLowerCaseLetters", int),
        E(
            "restrict_min_non_alphanumeric_characters",
            "restrictMinNonAlphanumericCharacters", bool,
        ),
        E("min_non_alphanumeric_characters", "minNonAlphanumericCharacters", int),
        E("min_length", "minLength", int),
        E("send_permanent_lockout_notification", "sendPermanentLockoutNotification", bool),
        E(
            "permanent_lockout_notify_email_address",
            "permanentLockoutNotifyEmailAddress", str,
        ),
        E("endpoint_authentication_lockout_type", "endpointAuthenticationLockoutType", str),
        E("endpoint_temporary_lockout_threshold", "endpointTemporaryLockoutThreshold", int),
        E("endpoint_wait_algorithm", "endpointWaitAlgorithm", str),
        E("endpoint_lockout_fixed_minutes", "endpointLockoutFixedMinutes", str),
        E("endpoint_permanent_lockout_threshold", "endpointPermanentLockoutThreshold", int),
        E(
            "trunk_group_authentication_lockout_type",
            "trunkGroupAuthenticationLockoutType", str,
        ),
        E(
            "trunk_group_temporary_lockout_threshold",
            "trunkGroupTemporaryLockoutThreshold", int,
        ),
        E("trunk_group_wait_algorithm", "trunkGroupWaitAlgorithm", str),
        E("trunk_group_lockout_fixed_minutes", "trunkGroupLockoutFixedMinutes", str),
        E(
            "trunk_group_permanent_lockout_threshold",
            "trunkGroupPermanentLockoutThreshold", int,
        ),
    )

    disallow_authentication_name: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_password: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_password: bool = Field(type=bool, required=False, mutable=False)
    restrict_min_digits: bool = Field(type=bool, required=False, mutable=False)
    min_digits: int = Field(type=int, required=False, mutable=False)
    restrict_min_upper_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_upper_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_lower_case_letters: bool = Field(type=bool, required=False, mutable=False)
    min_lower_case_letters: int = Field(type=int, required=False, mutable=False)
    restrict_min_non_alphanumeric_characters: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_non_alphanumeric_characters: int = Field(type=int, required=False, mutable=False)
    min_length: int = Field(type=int, required=False, mutable=False)
    send_permanent_lockout_notification: bool = Field(
        type=bool, required=False, mutable=False,
    )
    permanent_lockout_notify_email_address: str = Field(
        type=str, required=False, mutable=False,
    )
    endpoint_authentication_lockout_type: str = Field(type=str, required=False, mutable=False)
    endpoint_temporary_lockout_threshold: int = Field(type=int, required=False, mutable=False)
    endpoint_wait_algorithm: str = Field(type=str, required=False, mutable=False)
    endpoint_lockout_fixed_minutes: str = Field(type=str, required=False, mutable=False)
    endpoint_permanent_lockout_threshold: int = Field(type=int, required=False, mutable=False)
    trunk_group_authentication_lockout_type: str = Field(
        type=str, required=False, mutable=False,
    )
    trunk_group_temporary_lockout_threshold: int = Field(
        type=int, required=False, mutable=False,
    )
    trunk_group_wait_algorithm: str = Field(type=str, required=False, mutable=False)
    trunk_group_lockout_fixed_minutes: str = Field(type=str, required=False, mutable=False)
    trunk_group_permanent_lockout_threshold: int = Field(
        type=int, required=False, mutable=False,
    )


class SystemSIPDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the SIP access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeleteACLEntryRequest14sp2(OCIRequest):
    """
    Delete an entry from the SIP access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeleteContentTypeRequest(OCIRequest):
    """
    Delete a content type for the SIP interface.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        content_type: contentType
    """

    _ELEMENTS = (
        E("content_type", "contentType", str, is_required=True),
    )

    content_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceFileApplyExtendedCaptureToAllDeviceProfilesRequest(OCIRequest):
    """
    Request to apply an extended file capture value to all the profile instances
    associated to a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
        extended_capture_on_upload_from_device: extendedCaptureOnUploadFromDevice
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E(
            "extended_capture_on_upload_from_device", "extendedCaptureOnUploadFromDevice",
            bool, is_required=True,
        ),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    extended_capture_on_upload_from_device: bool = Field(
        type=bool, required=True, mutable=False,
    )


class SystemSIPDeviceTypeDeleteRequest(OCIRequest):
    """
    Request to delete a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileDeleteRequest(OCIRequest):
    """
    Request to delete a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemSIPDeviceTypeFileDeleteRequest14sp8()``

    Attributes:
        device_type: deviceType
        file_type: fileType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileDeleteRequest14sp8(OCIRequest):
    """
    Request to delete a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileGetListRequest(OCIRequest):
    """
    Request to get the list of device files managed by the Device Management System, on a
    per-device type basis.

    The response is either ``SystemSIPDeviceTypeFileGetListResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemSIPDeviceTypeFileGetListRequest14sp8()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileGetListRequest14sp8(OCIRequest):
    """
    Request to get the list of device files managed by the Device Management System, on a
    per-device type basis.

    The response is either ``SystemSIPDeviceTypeFileGetListResponse14sp8()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileGetRequest(OCIRequest):
    """
    Request to get a sip device type file.

    The response is either ``SystemSIPDeviceTypeFileGetResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemSIPDeviceTypeFileGetRequest14sp8()``

    Attributes:
        device_type: deviceType
        file_type: fileType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileGetRequest14sp8(OCIRequest):
    """
    Request to get a sip device type file.

    The response is either ``SystemSIPDeviceTypeFileGetResponse14sp8()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileGetRequest16sp1(OCIRequest):
    """
    Replaced By ``SystemSIPDeviceTypeFileGetRequest18()``.

    Request to get a sip device type file.

    The response is either ``SystemSIPDeviceTypeFileGetResponse16sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileGetRequest18(OCIRequest):
    """
    Request to get a sip device type file.

    The response is either ``SystemSIPDeviceTypeFileGetResponse18()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileGetRequest19(OCIRequest):
    """
    Request to get a sip device type file.

    The response is either ``SystemSIPDeviceTypeFileGetResponse19()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeFileGetRequest20(OCIRequest):
    """
    Request to get a sip device type file.

    The response is either ``SystemSIPDeviceTypeFileGetResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest14sp1(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse14sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest14sp2(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse14sp2()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemSIPDeviceTypeGetRequest14sp3()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest14sp3(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse14sp3()`` or
    ``ErrorResponse()``. Replaced by: ``SystemSIPDeviceTypeGetRequest14sp6()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest14sp6(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse14sp6()`` or
    ``ErrorResponse()``.

    Replaced By : ``SystemSIPDeviceTypeGetRequest15()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest15(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse15()`` or ``ErrorResponse()``.

    Replaced By : ``SystemSIPDeviceTypeGetRequest16()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest16(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse16()`` or ``ErrorResponse()``.
    Replaced by: ``SystemSIPDeviceTypeGetRequest16sp1()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest16sp1(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse16sp1()`` or
    ``ErrorResponse()``. Replaced by: ``SystemSIPDeviceTypeGetRequest17()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest17(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse17()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest17sp4(OCIRequest):
    """
    Replaced By ``SystemSIPDeviceTypeGetRequest18()``.

    Request to get a sip device type.  See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse17sp4()`` or
    ``ErrorResponse()``. Replaced by: ``SystemSIPDeviceTypeGetRequest18()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest18(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse18()`` or ``ErrorResponse()``.
    Replaced by: ``SystemSIPDeviceTypeGetRequest19()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest18sp1(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse18sp1()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest19(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse19()`` or ``ErrorResponse()``.
    Replaced by: ``SystemSIPDeviceTypeGetRequest19sp1()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest19sp1(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse19sp1()`` or
    ``ErrorResponse()``. Replaced by: ``SystemSIPDeviceTypeGetRequest20()``

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest20(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse20()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeGetRequest21(OCIRequest):
    """
    Request to get a sip device type.

    See Also: ``SystemDeviceTypeGetRequest()``

    The response is either ``SystemSIPDeviceTypeGetResponse21()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeLanguageMappingGetListRequest(OCIRequest):
    """
    Request to get the list of device language names mapped to BroadWorks language names,
    per-device type.

    The response is either ``SystemSIPDeviceTypeLanguageMappingGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeServiceGetRequest(OCIRequest):
    """
    Request to get the list of BroadWorks services that can be integrated to a device type
    and the level of integration for this device type.

    The response is either ``SystemSIPDeviceTypeServiceGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeServiceModifyRequest(OCIRequest):
    """
    Request to set the level of integration that a device type has in relation to
    BroadWorks services.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        supports_polycom_phone_services: supportsPolycomPhoneServices
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("supports_polycom_phone_services", "supportsPolycomPhoneServices", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    supports_polycom_phone_services: bool = Field(type=bool, required=False, mutable=False)


class SystemSIPDiversionReasonGetRequest(OCIRequest):
    """
    Request to get the list of SIP Diversion Cause values.

    The response is either a ``SystemSIPDiversionReasonGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSIPDiversionReasonModifyRequest(OCIRequest):
    """
    Request to modify the SIP cause value for a given diversion reason.

    The response is either a ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        diversion_reason: diversionReason
        cause_value: causeValue
    """

    _ELEMENTS = (
        E("diversion_reason", "diversionReason", str, is_required=True),
        E("cause_value", "causeValue", str, is_required=True),
    )

    diversion_reason: str = Field(type=str, required=True, mutable=False)
    cause_value: str = Field(type=str, required=True, mutable=False)


class SystemSIPGetACLListRequest(OCIRequest):
    """
    Get the SIP access control list.

    The response is either ``SystemSIPGetACLListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSIPGetContentTypeListRequest(OCIRequest):
    """
    Get the content type list for the SIP interface.

    The response is either ``SystemSIPGetContentTypeListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSIPModifyACLEntryRequest(OCIRequest):
    """
    Modify an entry from the SIP access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("transport_protocol", "transportProtocol", str),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSIPModifyACLEntryRequest14sp2(OCIRequest):
    """
    Modify an entry from the SIP access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("transport_protocol", "transportProtocol", str),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSIPModifyContentTypeRequest(OCIRequest):
    """
    Modify an content type for the SIP interface.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        content_type: contentType
        interface: interface
    """

    _ELEMENTS = (
        E("content_type", "contentType", str, is_required=True),
        E("interface", "interface", str),
    )

    content_type: str = Field(type=str, required=True, mutable=False)
    interface: str = Field(type=str, required=False, mutable=False)


class SystemSMDIAddACLEntryRequest(OCIRequest):
    """
    Add an entry to the SMDI access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSMDIAddACLEntryRequest14sp2(OCIRequest):
    """
    Add an entry to the SMDI access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSMDIDeleteACLEntryRequest(OCIRequest):
    """
    Delete an entry from the SMDI access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemSMDIDeleteACLEntryRequest14sp2(OCIRequest):
    """
    Delete an entry from the SMDI access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemSMDIGetACLListRequest(OCIRequest):
    """
    Get the SMDI access control list.

    The response is either ``SystemSMDIGetACLListResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSMDIMessageDeskAddServerRequest(OCIRequest):
    """
    Request to add a SMDI Server to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        net_address: netAddress
        port: port
        description: description
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int, is_required=True),
        E("description", "description", str),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSMDIMessageDeskAddServerRouteRequest(OCIRequest):
    """
    Request to add a SMDI Server route to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        route_destination: routeDestination
        device_name: deviceName
    """

    _ELEMENTS = (
        E("route_destination", "routeDestination", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    route_destination: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class SystemSMDIMessageDeskDeleteServerRequest(OCIRequest):
    """
    Request to delete a SMDI Server from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)


class SystemSMDIMessageDeskDeleteServerRouteRequest(OCIRequest):
    """
    Request to delete a SMDI Server route from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        route_destination: routeDestination
    """

    _ELEMENTS = (
        E("route_destination", "routeDestination", str, is_required=True),
    )

    route_destination: str = Field(type=str, required=True, mutable=False)


class SystemSMDIMessageDeskGetServerListRequest(OCIRequest):
    """
    Request to get a list of SMDI Servers defined in the system.

    The response is either a ``SystemSMDIMessageDeskGetServerListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSMDIMessageDeskGetServerRouteListRequest(OCIRequest):
    """
    Request to get a list of SMDI Servers routes in the system.

    The response is either a ``SystemSMDIMessageDeskGetServerRouteListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSMDIMessageDeskModifyServerRequest(OCIRequest):
    """
    Request to modify a SMDI Server in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        net_address: netAddress
        port: port
        description: description
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("net_address", "netAddress", str),
        E("port", "port", int),
        E("description", "description", str),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSMDIMessageDeskModifyServerRouteRequest(OCIRequest):
    """
    Replace the list of devices associated with a SMDI server route destination.

    There must be at least one device in the list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        route_destination: routeDestination
        device_name_list: deviceNameList
    """

    _ELEMENTS = (
        E("route_destination", "routeDestination", str, is_required=True),
        E("device_name_list", "deviceNameList", str, is_complex=True),  # unknown
    )

    route_destination: str = Field(type=str, required=True, mutable=False)
    device_name_list: str = Field(type=str, required=False, mutable=False)


class SystemSMDIModifyACLEntryRequest(OCIRequest):
    """
    Modify an entry from the SMDI access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSMDIModifyACLEntryRequest14sp2(OCIRequest):
    """
    Modify an entry from the SMDI access control list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemSMDIParametersGetRequest(OCIRequest):
    """
    Request to get the list of SMDI system parameters.

    The response is either ``SystemSMDIParametersGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSMDIParametersModifyRequest(OCIRequest):
    """
    Request to modify SMDI system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        enable_smdi: enableSMDI
        listening_port: listeningPort
        max_connections: maxConnections
    """

    _ELEMENTS = (
        E("enable_smdi", "enableSMDI", bool),
        E("listening_port", "listeningPort", int),
        E("max_connections", "maxConnections", int),
    )

    enable_smdi: bool = Field(type=bool, required=False, mutable=False)
    listening_port: int = Field(type=int, required=False, mutable=False)
    max_connections: int = Field(type=int, required=False, mutable=False)


class SystemSMPPGetRequest(OCIRequest):
    """
    Request the system level data associated with SMPP external interface.

    The response is either a ``SystemSMPPGetResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``SystemSMPPGetRequest14sp5()``
    """

    _ELEMENTS = ()


class SystemSMPPGetRequest14sp5(OCIRequest):
    """
    Request the system level data associated with SMPP external interface.

    The response is either a ``SystemSMPPGetResponse14sp5()`` or an ``ErrorResponse()``.
    Replaced by: ``SystemSMPPGetRequest21()``
    """

    _ELEMENTS = ()


class SystemSMPPGetRequest21(OCIRequest):
    """
    Request the system level data associated with SMPP external interface.

    The response is either a ``SystemSMPPGetResponse21()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSMPPModifyRequest(OCIRequest):
    """
    Request to modify the system level data associated with the SMPP external interface.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        primary_smpp_server_net_address: primarySMPPServerNetAddress
        primary_smpp_port: primarySMPPPort
        secondary_smpp_server_net_address: secondarySMPPServerNetAddress
        secondary_smpp_port: secondarySMPPPort
        system_id: systemId
        password: password
        version: version
        system_type: systemType
        enable_mwi_customized_message: enableMWICustomizedMessage
        support_message_payload: supportMessagePayload
        max_short_message_length: maxShortMessageLength
        use_gsm_mwi_ucs2_encoding: useGsmMwiUcs2Encoding
    """

    _ELEMENTS = (
        E("primary_smpp_server_net_address", "primarySMPPServerNetAddress", str),
        E("primary_smpp_port", "primarySMPPPort", int),
        E("secondary_smpp_server_net_address", "secondarySMPPServerNetAddress", str),
        E("secondary_smpp_port", "secondarySMPPPort", int),
        E("system_id", "systemId", str),
        E("password", "password", str),
        E("version", "version", str),
        E("system_type", "systemType", str),
        E("enable_mwi_customized_message", "enableMWICustomizedMessage", bool),
        E("support_message_payload", "supportMessagePayload", bool),
        E("max_short_message_length", "maxShortMessageLength", int),
        E("use_gsm_mwi_ucs2_encoding", "useGsmMwiUcs2Encoding", bool),
    )

    primary_smpp_server_net_address: str = Field(type=str, required=False, mutable=False)
    primary_smpp_port: int = Field(type=int, required=False, mutable=False)
    secondary_smpp_server_net_address: str = Field(type=str, required=False, mutable=False)
    secondary_smpp_port: int = Field(type=int, required=False, mutable=False)
    system_id: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    version: str = Field(type=str, required=False, mutable=False)
    system_type: str = Field(type=str, required=False, mutable=False)
    enable_mwi_customized_message: bool = Field(type=bool, required=False, mutable=False)
    support_message_payload: bool = Field(type=bool, required=False, mutable=False)
    max_short_message_length: int = Field(type=int, required=False, mutable=False)
    use_gsm_mwi_ucs2_encoding: bool = Field(type=bool, required=False, mutable=False)


class SystemScheduleAddRequest(OCIRequest):
    """
    Add a system schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        schedule_name: scheduleName
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("schedule_name", "scheduleName", str, is_required=True),
        E("schedule_type", "scheduleType", str, is_required=True),
    )

    schedule_name: str = Field(type=str, required=True, mutable=False)
    schedule_type: str = Field(type=str, required=True, mutable=False)


class SystemScheduleGetListRequest(OCIRequest):
    """
    Get the list of a system schedules.

    The list can be filtered by schedule type.

    The response is either a ``SystemScheduleGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("schedule_type", "scheduleType", str),
    )

    schedule_type: str = Field(type=str, required=False, mutable=False)


class SystemSecurityClassificationDeleteClassificationRequest(OCIRequest):
    """
    Delete a System Security Classification The response is either a ``SuccessResponse()``
    or an ``ErrorResponse()``.


    Attributes:
        security_classification_name: securityClassificationName
    """

    _ELEMENTS = (
        E(
            "security_classification_name", "securityClassificationName", str,
            is_required=True,
        ),
    )

    security_classification_name: str = Field(type=str, required=True, mutable=False)


class SystemSecurityClassificationGetClassificationRequest(OCIRequest):
    """
    Get a system Security Classification.

    The response is either ``SystemSecurityClassificationGetClassificationResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        security_classification_name: securityClassificationName
    """

    _ELEMENTS = (
        E(
            "security_classification_name", "securityClassificationName", str,
            is_required=True,
        ),
    )

    security_classification_name: str = Field(type=str, required=True, mutable=False)


class SystemSecurityClassificationGetRequest(OCIRequest):
    """
    Get a system Security Classifications parameters.

    The response is either ``SystemSecurityClassificationGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSecurityClassificationGetRequest21(OCIRequest):
    """
    Get system Security Classifications parameters.

    The response is either ``SystemSecurityClassificationGetResponse21()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSecurityClassificationModifyRequest(OCIRequest):
    """
    Modify security classification parameters.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. NOTE: The
    security classifications must be specified in order of priority.  The command fails if
    all the security classifications defined for the system are not provided.

    Attributes:
        meet_me_annc_threshold: meetMeAnncThreshold
        play_trunk_user_security_classification_announcement:
            playTrunkUserSecurityClassificationAnnouncement
        security_classification_name: securityClassificationName
    """

    _ELEMENTS = (
        E("meet_me_annc_threshold", "meetMeAnncThreshold", int),
        E(
            "play_trunk_user_security_classification_announcement",
            "playTrunkUserSecurityClassificationAnnouncement", bool,
        ),
        E("security_classification_name", "securityClassificationName", str),
    )

    meet_me_annc_threshold: int = Field(type=int, required=False, mutable=False)
    play_trunk_user_security_classification_announcement: bool = Field(
        type=bool, required=False, mutable=False,
    )
    security_classification_name: str = Field(type=str, required=False, mutable=False)


class SystemSelectiveServicesGetRequest(OCIRequest):
    """
    Request the system level data associated with Selective Services.

    The response is either a ``SystemSelectiveServicesGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSelectiveServicesGetRequest18sp1(OCIRequest):
    """
    Request the system level data associated with Selective Services.

    The response is either a ``SystemSelectiveServicesGetResponse18sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSelectiveServicesModifyRequest(OCIRequest):
    """
    Modify the system level data associated with ``SystemSelectiveServicesRequest()``.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        schedule_combination: scheduleCombination
        screen_private_number: screenPrivateNumber
    """

    _ELEMENTS = (
        E("schedule_combination", "scheduleCombination", str),
        E("screen_private_number", "screenPrivateNumber", bool),
    )

    schedule_combination: str = Field(type=str, required=False, mutable=False)
    screen_private_number: bool = Field(type=bool, required=False, mutable=False)


class SystemServerAddressesGetRequest(OCIRequest):
    """
    Request to get the list of Server Addresses.

    The response is either ``SystemServerAddressesGetResponse()`` or ``ErrorResponse()``.
    See also: ``PrimaryInfoGetRequest()``
    ``PublicClusterGetFullyQualifiedDomainNameRequest()``
    """

    _ELEMENTS = ()


class SystemServerAddressesModifyRequest(OCIRequest):
    """
    Request to modify Server Addresses.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        web_server_cluster_public_fqdn: webServerClusterPublicFQDN
        application_server_cluster_primary_public_fqdn:
            applicationServerClusterPrimaryPublicFQDN
        application_server_cluster_secondary_public_fqdn:
            applicationServerClusterSecondaryPublicFQDN
        application_server_cluster_primary_private_fqdn:
            applicationServerClusterPrimaryPrivateFQDN
        application_server_cluster_secondary_private_fqdn:
            applicationServerClusterSecondaryPrivateFQDN
    """

    _ELEMENTS = (
        E("web_server_cluster_public_fqdn", "webServerClusterPublicFQDN", str),
        E(
            "application_server_cluster_primary_public_fqdn",
            "applicationServerClusterPrimaryPublicFQDN", str,
        ),
        E(
            "application_server_cluster_secondary_public_fqdn",
            "applicationServerClusterSecondaryPublicFQDN", str,
        ),
        E(
            "application_server_cluster_primary_private_fqdn",
            "applicationServerClusterPrimaryPrivateFQDN", str,
        ),
        E(
            "application_server_cluster_secondary_private_fqdn",
            "applicationServerClusterSecondaryPrivateFQDN", str,
        ),
    )

    web_server_cluster_public_fqdn: str = Field(type=str, required=False, mutable=False)
    application_server_cluster_primary_public_fqdn: str = Field(
        type=str, required=False, mutable=False,
    )
    application_server_cluster_secondary_public_fqdn: str = Field(
        type=str, required=False, mutable=False,
    )
    application_server_cluster_primary_private_fqdn: str = Field(
        type=str, required=False, mutable=False,
    )
    application_server_cluster_secondary_private_fqdn: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemServiceActivationAccessCodeGetRequest(OCIRequest):
    """
    Get the Service Activation Access Code system parameters.

    The response is either a ``SystemServiceActivationAccessCodeGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemServiceActivationAccessCodeModifyRequest(OCIRequest):
    """
    Request to modify Service Activation Access Code system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        is_active: isActive
        terminating_access_code: terminatingAccessCode
        redirecting_access_code: redirectingAccessCode
        click_to_dial_access_code: clickToDialAccessCode
    """

    _ELEMENTS = (
        E("is_active", "isActive", bool),
        E("terminating_access_code", "terminatingAccessCode", str),
        E("redirecting_access_code", "redirectingAccessCode", str),
        E("click_to_dial_access_code", "clickToDialAccessCode", str),
    )

    is_active: bool = Field(type=bool, required=False, mutable=False)
    terminating_access_code: str = Field(type=str, required=False, mutable=False)
    redirecting_access_code: str = Field(type=str, required=False, mutable=False)
    click_to_dial_access_code: str = Field(type=str, required=False, mutable=False)


class SystemServiceCodeAddRequest(OCIRequest):
    """
    Request to add a service code for the purpose of providing free format routable
    strings for dialing The response is either ``SuccessResponse()`` or
    ``ErrorResponse()``.


    Attributes:
        service_code: serviceCode
        description: description
    """

    _ELEMENTS = (
        E("service_code", "serviceCode", str, is_required=True),
        E("description", "description", str, is_required=True),
    )

    service_code: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=True, mutable=False)


class SystemServiceCodeDeleteRequest(OCIRequest):
    """
    Request to delete a service code for the purpose of providing free format routable
    strings for dialing The response is either ``SuccessResponse()`` or
    ``ErrorResponse()``.


    Attributes:
        service_code: serviceCode
    """

    _ELEMENTS = (
        E("service_code", "serviceCode", str, is_required=True),
    )

    service_code: str = Field(type=str, required=True, mutable=False)


class SystemServiceCodeModifyRequest(OCIRequest):
    """
    Request to modify service code.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_code: serviceCode
        description: description
    """

    _ELEMENTS = (
        E("service_code", "serviceCode", str, is_required=True),
        E("description", "description", str),
    )

    service_code: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemServiceControlParametersGetRequest(OCIRequest):
    """
    Request to get the list of Service Control system parameters.

    The response is either ``SystemServiceControlParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemServiceControlParametersModifyRequest(OCIRequest):
    """
    Request to modify Service Control system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        server_port: serverPort
        max_client_connections: maxClientConnections
    """

    _ELEMENTS = (
        E("server_port", "serverPort", int),
        E("max_client_connections", "maxClientConnections", int),
    )

    server_port: int = Field(type=int, required=False, mutable=False)
    max_client_connections: int = Field(type=int, required=False, mutable=False)


class SystemServicePackMigrationGetRequest(OCIRequest):
    """
    Get system level Service Pack Migration parameters.

    The response is either a ``SystemServicePackMigrationGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemServicePackMigrationModifyRequest(OCIRequest):
    """
    Modify system level settings for Service Pack Migration.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        max_simultaneous_migration_tasks: maxSimultaneousMigrationTasks
    """

    _ELEMENTS = (
        E("max_simultaneous_migration_tasks", "maxSimultaneousMigrationTasks", int),
    )

    max_simultaneous_migration_tasks: int = Field(type=int, required=False, mutable=False)


class SystemServicePhoneNumberLookupRequest(OCIRequest):
    """
    Lookup if the given number is defined in the specified service in the system.

    The response is ``SystemServicePhoneNumberLookupResponse()``.

    Attributes:
        service_type: serviceType
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("service_type", "serviceType", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    service_type: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class SystemSessionAdmissionControlGetRequest(OCIRequest):
    """
    Get the session admission control settings for the system.

    The response is either a ``SystemSessionAdmissionControlGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSessionAdmissionControlModifyRequest(OCIRequest):
    """
    Modify the session admission control settings for the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        count_long_connections_to_media_server: countLongConnectionsToMediaServer
        sac_handling_for_mo_h: sacHandlingForMoH
        block_vm_deposit_due_to_sac_limits: blockVMDepositDueToSACLimits
    """

    _ELEMENTS = (
        E(
            "count_long_connections_to_media_server", "countLongConnectionsToMediaServer",
            bool,
        ),
        E("sac_handling_for_mo_h", "sacHandlingForMoH", str),
        E("block_vm_deposit_due_to_sac_limits", "blockVMDepositDueToSACLimits", bool),
    )

    count_long_connections_to_media_server: bool = Field(
        type=bool, required=False, mutable=False,
    )
    sac_handling_for_mo_h: str = Field(type=str, required=False, mutable=False)
    block_vm_deposit_due_to_sac_limits: bool = Field(type=bool, required=False, mutable=False)


class SystemSessionAuditGetRequest(OCIRequest):
    """
    Request the system level data associated with session audit.

    The response is either a ``SystemSessionAuditGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemSessionAuditGetRequest14sp3()``
    """

    _ELEMENTS = ()


class SystemSessionAuditGetRequest14sp3(OCIRequest):
    """
    Request the system level data associated with session audit.

    The response is either a ``SystemSessionAuditGetResponse14sp3()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSessionAuditGetRequest17sp3(OCIRequest):
    """
    Request the system level data associated with session audit.

    The response is either a ``SystemSessionAuditGetResponse17sp3()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSessionAuditModifyRequest(OCIRequest):
    """
    Modify the system level data associated with session sudit.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``SystemSessionAuditModifyRequest14sp3()``

    Attributes:
        is_active: isActive
        interval_seconds: intervalSeconds
        timeout_period_seconds: timeoutPeriodSeconds
    """

    _ELEMENTS = (
        E("is_active", "isActive", bool),
        E("interval_seconds", "intervalSeconds", int),
        E("timeout_period_seconds", "timeoutPeriodSeconds", int),
    )

    is_active: bool = Field(type=bool, required=False, mutable=False)
    interval_seconds: int = Field(type=int, required=False, mutable=False)
    timeout_period_seconds: int = Field(type=int, required=False, mutable=False)


class SystemSessionAuditModifyRequest14sp3(OCIRequest):
    """
    Modify the system level data associated with session audit.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        is_audit_active: isAuditActive
        audit_interval_seconds: auditIntervalSeconds
        audit_timeout_seconds: auditTimeoutSeconds
        release_call_on_audit_failure: releaseCallOnAuditFailure
        is_sip_refresh_allowed_on_audit: isSIPRefreshAllowedOnAudit
        allow_update_for_sip_refresh: allowUpdateForSIPRefresh
        is_sip_session_timer_active: isSIPSessionTimerActive
        sip_session_expires_minimum_seconds: sipSessionExpiresMinimumSeconds
        enforce_sip_session_expires_maximum: enforceSIPSessionExpiresMaximum
        sip_session_expires_maximum_seconds: sipSessionExpiresMaximumSeconds
        sip_session_expires_timer_seconds: sipSessionExpiresTimerSeconds
        always_use_session_timer_when_supported: alwaysUseSessionTimerWhenSupported
        preferred_session_timer_refresher: preferredSessionTimerRefresher
        enable_emergency_call_alarm_timer: enableEmergencyCallAlarmTimer
        emergency_call_alarm_minutes: emergencyCallAlarmMinutes
        enable_emergency_call_cleanup_timer: enableEmergencyCallCleanupTimer
        emergency_call_cleanup_minutes: emergencyCallCleanupMinutes
    """

    _ELEMENTS = (
        E("is_audit_active", "isAuditActive", bool),
        E("audit_interval_seconds", "auditIntervalSeconds", int),
        E("audit_timeout_seconds", "auditTimeoutSeconds", int),
        E("release_call_on_audit_failure", "releaseCallOnAuditFailure", bool),
        E("is_sip_refresh_allowed_on_audit", "isSIPRefreshAllowedOnAudit", bool),
        E("allow_update_for_sip_refresh", "allowUpdateForSIPRefresh", bool),
        E("is_sip_session_timer_active", "isSIPSessionTimerActive", bool),
        E("sip_session_expires_minimum_seconds", "sipSessionExpiresMinimumSeconds", int),
        E("enforce_sip_session_expires_maximum", "enforceSIPSessionExpiresMaximum", bool),
        E("sip_session_expires_maximum_seconds", "sipSessionExpiresMaximumSeconds", int),
        E("sip_session_expires_timer_seconds", "sipSessionExpiresTimerSeconds", int),
        E(
            "always_use_session_timer_when_supported",
            "alwaysUseSessionTimerWhenSupported", bool,
        ),
        E("preferred_session_timer_refresher", "preferredSessionTimerRefresher", str),
        E("enable_emergency_call_alarm_timer", "enableEmergencyCallAlarmTimer", bool),
        E("emergency_call_alarm_minutes", "emergencyCallAlarmMinutes", int),
        E("enable_emergency_call_cleanup_timer", "enableEmergencyCallCleanupTimer", bool),
        E("emergency_call_cleanup_minutes", "emergencyCallCleanupMinutes", int),
    )

    is_audit_active: bool = Field(type=bool, required=False, mutable=False)
    audit_interval_seconds: int = Field(type=int, required=False, mutable=False)
    audit_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    release_call_on_audit_failure: bool = Field(type=bool, required=False, mutable=False)
    is_sip_refresh_allowed_on_audit: bool = Field(type=bool, required=False, mutable=False)
    allow_update_for_sip_refresh: bool = Field(type=bool, required=False, mutable=False)
    is_sip_session_timer_active: bool = Field(type=bool, required=False, mutable=False)
    sip_session_expires_minimum_seconds: int = Field(type=int, required=False, mutable=False)
    enforce_sip_session_expires_maximum: bool = Field(
        type=bool, required=False, mutable=False,
    )
    sip_session_expires_maximum_seconds: int = Field(type=int, required=False, mutable=False)
    sip_session_expires_timer_seconds: int = Field(type=int, required=False, mutable=False)
    always_use_session_timer_when_supported: bool = Field(
        type=bool, required=False, mutable=False,
    )
    preferred_session_timer_refresher: str = Field(type=str, required=False, mutable=False)
    enable_emergency_call_alarm_timer: bool = Field(type=bool, required=False, mutable=False)
    emergency_call_alarm_minutes: int = Field(type=int, required=False, mutable=False)
    enable_emergency_call_cleanup_timer: bool = Field(
        type=bool, required=False, mutable=False,
    )
    emergency_call_cleanup_minutes: int = Field(type=int, required=False, mutable=False)


class SystemShInterfaceParametersGetRequest(OCIRequest):
    """
    Retrieves the Sh Interface system parameters.

    The response is either a ``SystemShInterfaceParametersGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemShInterfaceParametersGetRequest17(OCIRequest):
    """
    Retrieves the Sh Interface system parameters.

    The response is either a ``SystemShInterfaceParametersGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemShInterfaceParametersModifyRequest(OCIRequest):
    """
    Modifies the Sh Interface system parameters.

    This request must be submitted on both nodes in the redundant Application Server
    cluster in order for the changes to take effect on each node without requiring a
    restart.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        hss_realm: hssRealm
        request_timeout_seconds: requestTimeoutSeconds
        public_identity_refresh_delay_seconds: publicIdentityRefreshDelaySeconds
    """

    _ELEMENTS = (
        E("hss_realm", "hssRealm", str),
        E("request_timeout_seconds", "requestTimeoutSeconds", int),
        E("public_identity_refresh_delay_seconds", "publicIdentityRefreshDelaySeconds", int),
    )

    hss_realm: str = Field(type=str, required=False, mutable=False)
    request_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    public_identity_refresh_delay_seconds: int = Field(
        type=int, required=False, mutable=False,
    )


class SystemShInterfaceParametersModifyRequest17(OCIRequest):
    """
    Modifies the Sh Interface system parameters.

    This request must be submitted on both nodes in the redundant Application Server
    cluster in order for the changes to take effect on each node without requiring a
    restart.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        hss_realm: hssRealm
        public_identity_refresh_delay_seconds: publicIdentityRefreshDelaySeconds
    """

    _ELEMENTS = (
        E("hss_realm", "hssRealm", str),
        E("public_identity_refresh_delay_seconds", "publicIdentityRefreshDelaySeconds", int),
    )

    hss_realm: str = Field(type=str, required=False, mutable=False)
    public_identity_refresh_delay_seconds: int = Field(
        type=int, required=False, mutable=False,
    )


class SystemShInterfaceRefreshTaskGetRequest(OCIRequest):
    """
    Retrieves the status of the system refresh task on the local Application Server node.

    The response is either a ``SystemShInterfaceRefreshTaskGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemShInterfaceRefreshTaskStartRequest(OCIRequest):
    """
    Dispatches the system refresh task on the local Application Server node.

    At most one instance of the system refresh task may run on an Application Server node
    at a given point in time.  If the system refresh task is already running when this
    request is made, an ``ErrorResponse()`` is returned.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemShInterfaceRefreshTaskTerminateRequest(OCIRequest):
    """
    Terminates the system refresh task in progress on the local Application Server node.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSoftwareVersionGetRequest(OCIRequest):
    """
    Requests the software version of the Application Server.

    The response is either ``SystemSoftwareVersionGetResponse()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSpeedDial100GetRequest(OCIRequest):
    """
    Get the speed dial 100 system-wide default setting.

    The response is either a ``SystemSpeedDial100GetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSpeedDial100GetRequest17sp1(OCIRequest):
    """
    Get the speed dial 100 system-wide default setting.

    The response is either a ``SystemSpeedDial100GetResponse17sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSpeedDial100ModifyRequest(OCIRequest):
    """
    Modify the speed dial 100 system-wide default prefix setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        prefix: prefix
    """

    _ELEMENTS = (
        E("prefix", "prefix", str),
    )

    prefix: str = Field(type=str, required=False, mutable=False)


class SystemStateOrProvinceGetListRequest(OCIRequest):
    """
    Requests the list of state and province names.

    The response is either ``SystemStateOrProvinceGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSubscriberGetCallProcessingParametersRequest(OCIRequest):
    """
    Get the system call processing configuration for all subscribers The response is
    either a ``SystemSubscriberGetCallProcessingParametersResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemSubscriberGetCallProcessingParametersRequest14sp3()``
    """

    _ELEMENTS = ()


class SystemSubscriberGetCallProcessingParametersRequest14sp3(OCIRequest):
    """
    Get the system call processing configuration for all subscribers The response is
    either a ``SystemSubscriberGetCallProcessingParametersResponse14sp3()`` or an
    ``ErrorResponse()``.

    """

    _ELEMENTS = ()


class SystemSubscriberGetCallProcessingParametersRequest14sp7(OCIRequest):
    """
    Get the system call processing configuration for all subscribers The response is
    either a ``SystemSubscriberGetCallProcessingParametersResponse14sp7()`` or an
    ``ErrorResponse()``.

    Replaced By : ``SystemSubscriberGetCallProcessingParametersRequest15sp2()``
    """

    _ELEMENTS = ()


class SystemSubscriberGetCallProcessingParametersRequest15(OCIRequest):
    """
    Get the system call processing configuration for all subscribers The response is
    either a ``SystemSubscriberGetCallProcessingParametersResponse15()`` or an
    ``ErrorResponse()``.

    Replaced By: ``SystemSubscriberGetCallProcessingParametersRequest15sp2()``
    """

    _ELEMENTS = ()


class SystemSubscriberGetCallProcessingParametersRequest15sp2(OCIRequest):
    """
    Get the system call processing configuration for all subscribers The response is
    either a ``SystemSubscriberGetCallProcessingParametersResponse15sp2()`` or an
    ``ErrorResponse()``.

    Replaced by: ``SystemSubscriberGetCallProcessingParametersRequest17()``
    """

    _ELEMENTS = ()


class SystemSubscriberGetCallProcessingParametersRequest17(OCIRequest):
    """
    Get the system call processing configuration for all subscribers The response is
    either a ``SystemSubscriberGetCallProcessingParametersResponse17()`` or an
    ``ErrorResponse()``.

    """

    _ELEMENTS = ()


class SystemSubscriberGetCallProcessingParametersRequest17sp3(OCIRequest):
    """
    Get the system call processing configuration for all subscribers The response is
    either a ``SystemSubscriberGetCallProcessingParametersResponse17sp3()`` or an
    ``ErrorResponse()``.

    """

    _ELEMENTS = ()


class SystemSubscriberGetCallProcessingParametersRequest17sp4(OCIRequest):
    """
    Get the system call processing configuration for all subscribers The response is
    either a ``SystemSubscriberGetCallProcessingParametersResponse17sp4()`` or an
    ``ErrorResponse()``.

    Replaced by ``SystemSubscriberGetCallProcessingParametersRequest18sp1()``.
    """

    _ELEMENTS = ()


class SystemSubscriberGetCallProcessingParametersRequest18sp1(OCIRequest):
    """
    Get the system call processing configuration for all subscribers The response is
    either a ``SystemSubscriberGetCallProcessingParametersResponse18sp1()`` or an
    ``ErrorResponse()``.

    """

    _ELEMENTS = ()


class SystemSubscriberGetLoginParametersRequest(OCIRequest):
    """
    Get the system login configuration for all subscribers.

    The response is either a ``SystemSubscriberGetLoginParametersResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSubscriberGetProvisioningParametersRequest(OCIRequest):
    """
    Get the system provisioning configuration for all subscribers The response is either a
    ``SystemSubscriberGetProvisioningParametersResponse()`` or an ``ErrorResponse()``.

    """

    _ELEMENTS = ()


class SystemSubscriberModifyCallProcessingParametersRequest(OCIRequest):
    """
    Modify the system call processing configuration for all subscribers.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``SystemSubscriberModifyCallProcessingParametersRequest14sp7()``

    Attributes:
        user_calling_line_id_selection: userCallingLineIdSelection
        is_extended_calling_line_id_active: isExtendedCallingLineIdActive
        is_ring_time_out_active: isRingTimeOutActive
        ring_timeout_seconds: ringTimeoutSeconds
        allow_emergency_remote_office_originations: allowEmergencyRemoteOfficeOriginations
        max_no_answer_number_of_rings: maxNoAnswerNumberOfRings
    """

    _ELEMENTS = (
        E("user_calling_line_id_selection", "userCallingLineIdSelection", str),
        E("is_extended_calling_line_id_active", "isExtendedCallingLineIdActive", bool),
        E("is_ring_time_out_active", "isRingTimeOutActive", bool),
        E("ring_timeout_seconds", "ringTimeoutSeconds", int),
        E(
            "allow_emergency_remote_office_originations",
            "allowEmergencyRemoteOfficeOriginations", bool,
        ),
        E("max_no_answer_number_of_rings", "maxNoAnswerNumberOfRings", int),
    )

    user_calling_line_id_selection: str = Field(type=str, required=False, mutable=False)
    is_extended_calling_line_id_active: bool = Field(type=bool, required=False, mutable=False)
    is_ring_time_out_active: bool = Field(type=bool, required=False, mutable=False)
    ring_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    allow_emergency_remote_office_originations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_no_answer_number_of_rings: int = Field(type=int, required=False, mutable=False)


class SystemSubscriberModifyCallProcessingParametersRequest14sp7(OCIRequest):
    """
    Modify the system call processing configuration for all subscribers.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        is_extended_calling_line_id_active: isExtendedCallingLineIdActive
        is_ring_time_out_active: isRingTimeOutActive
        ring_timeout_seconds: ringTimeoutSeconds
        allow_emergency_remote_office_originations: allowEmergencyRemoteOfficeOriginations
        max_no_answer_number_of_rings: maxNoAnswerNumberOfRings
        incoming_call_to_user_alias_mode: incomingCallToUserAliasMode
        bypass_termination_loop_detection: bypassTerminationLoopDetection
        honor_clid_blocking_for_emergency_calls: honorCLIDBlockingForEmergencyCalls
        use_unicode_identity_name: useUnicodeIdentityName
    """

    _ELEMENTS = (
        E("is_extended_calling_line_id_active", "isExtendedCallingLineIdActive", bool),
        E("is_ring_time_out_active", "isRingTimeOutActive", bool),
        E("ring_timeout_seconds", "ringTimeoutSeconds", int),
        E(
            "allow_emergency_remote_office_originations",
            "allowEmergencyRemoteOfficeOriginations", bool,
        ),
        E("max_no_answer_number_of_rings", "maxNoAnswerNumberOfRings", int),
        E("incoming_call_to_user_alias_mode", "incomingCallToUserAliasMode", str),
        E("bypass_termination_loop_detection", "bypassTerminationLoopDetection", bool),
        E(
            "honor_clid_blocking_for_emergency_calls",
            "honorCLIDBlockingForEmergencyCalls", bool,
        ),
        E("use_unicode_identity_name", "useUnicodeIdentityName", bool),
    )

    is_extended_calling_line_id_active: bool = Field(type=bool, required=False, mutable=False)
    is_ring_time_out_active: bool = Field(type=bool, required=False, mutable=False)
    ring_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    allow_emergency_remote_office_originations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_no_answer_number_of_rings: int = Field(type=int, required=False, mutable=False)
    incoming_call_to_user_alias_mode: str = Field(type=str, required=False, mutable=False)
    bypass_termination_loop_detection: bool = Field(type=bool, required=False, mutable=False)
    honor_clid_blocking_for_emergency_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_unicode_identity_name: bool = Field(type=bool, required=False, mutable=False)


class SystemSubscriberModifyLoginParametersRequest(OCIRequest):
    """
    Modify the system login configuration for all subscribers The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        max_failed_login_attempts: maxFailedLoginAttempts
        min_login_id_length: minLoginIdLength
    """

    _ELEMENTS = (
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("min_login_id_length", "minLoginIdLength", int),
    )

    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    min_login_id_length: int = Field(type=int, required=False, mutable=False)


class SystemSubscriberModifyProvisioningParametersRequest(OCIRequest):
    """
    Modify the system provisioning configuration for all subscribers.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        configurable_clid_normalization: configurableCLIDNormalization
    """

    _ELEMENTS = (
        E("configurable_clid_normalization", "configurableCLIDNormalization", bool),
    )

    configurable_clid_normalization: bool = Field(type=bool, required=False, mutable=False)


class SystemSystemServiceCallProcessingPoliciesGetRequest(OCIRequest):
    """
    Request the data associated with Call Processing Policy for system service instances.

    The response is either ``SystemSystemServiceCallProcessingPoliciesGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSystemServiceCallProcessingPoliciesModifyRequest(OCIRequest):
    """
    Request the data associated with Call Processing Policy for system service instances.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
    """

    _ELEMENTS = (
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
    )

    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )


class SystemSystemServiceDnGetAvailableListRequest(OCIRequest):
    """
    Request a list of system service DNs not yet in use.

    The response is either ``SystemSystemServiceDnGetAvailableListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSystemServiceDnGetSummaryListRequest(OCIRequest):
    """
    Request a summary table of all System Service DNs.

    The response is either ``SystemSystemServiceDnGetSummaryListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSystemServiceDnGetUsageListRequest(OCIRequest):
    """
    Request a list of System Service DN utilization.

    The response is either ``SystemSystemServiceDnGetUsageListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSystemVoicePortalDeleteRequest(OCIRequest):
    """
    Request to delete a system voice portal instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        system_voice_portal_id: systemVoicePortalId
    """

    _ELEMENTS = (
        E("system_voice_portal_id", "systemVoicePortalId", str, is_required=True),
    )

    system_voice_portal_id: str = Field(type=str, required=True, mutable=False)


class SystemSystemVoicePortalGetListRequest(OCIRequest):
    """
    Request to get the list of the system voice portals.

    The response is either SystemSystemVoicePortalGetListResponce or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemSystemVoicePortalGetRequest(OCIRequest):
    """
    Request to get a system voice portal instance.

    The response is either ``SystemSystemVoicePortalGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        system_voice_portal_id: systemVoicePortalId
    """

    _ELEMENTS = (
        E("system_voice_portal_id", "systemVoicePortalId", str, is_required=True),
    )

    system_voice_portal_id: str = Field(type=str, required=True, mutable=False)


class SystemThirdPartyIMPGetRequest(OCIRequest):
    """
    Get the system Third-Party IMP service attributes.

    The response is either ``SystemThirdPartyIMPGetResponse()`` or ``ErrorResponse()``.
    Replaced by ``SystemThirdPartyIMPGetRequest19()``.
    """

    _ELEMENTS = ()


class SystemThirdPartyIMPGetRequest19(OCIRequest):
    """
    Get the system Third-Party IMP service attributes.

    The response is either ``SystemThirdPartyIMPGetResponse19()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemThirdPartyIMPModifyRequest(OCIRequest):
    """
    Modify the system Third-Party IMP service attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: boshURL

    Attributes:
        service_net_address: serviceNetAddress
        service_port: servicePort
        bosh_url: boshURL
    """

    _ELEMENTS = (
        E("service_net_address", "serviceNetAddress", str),
        E("service_port", "servicePort", int),
        E("bosh_url", "boshURL", str),
    )

    service_net_address: str = Field(type=str, required=False, mutable=False)
    service_port: int = Field(type=int, required=False, mutable=False)
    bosh_url: str = Field(type=str, required=False, mutable=False)


class SystemThirdPartyVoiceMailSupportAddDnRequest(OCIRequest):
    """
    Request to add a ThirdPartyVoiceMailSupport User DN to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
        description: description
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_required=True),
        E("description", "description", str),
    )

    phone_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemThirdPartyVoiceMailSupportDeleteDnRequest(OCIRequest):
    """
    Request to delete a ThirdPartyVoiceMailSupport User DN from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    phone_number: str = Field(type=str, required=True, mutable=False)


class SystemThirdPartyVoiceMailSupportGetRequest(OCIRequest):
    """
    Request the system level data associated with Third-party Voice Mail Support.

    The response is either a ``SystemThirdPartyVoiceMailSupportGetResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemThirdPartyVoiceMailSupportGetRequest17sp4(OCIRequest):
    """
    Request the system level data associated with Third-party Voice Mail Support.

    The response is either a ``SystemThirdPartyVoiceMailSupportGetResponse17sp4()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemThirdPartyVoiceMailSupportModifyDnRequest(OCIRequest):
    """
    Request to modify a ThirdPartyVoiceMailSupport User DN and description in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
        description: description
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_required=True),
        E("description", "description", str),
    )

    phone_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemThirdPartyVoiceMailSupportModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Third-party Voice Mail Support.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode:
    stripDiversionOnVMDestinationRetrieval

    Attributes:
        override_alt_caller_id_for_vm_retrieval: overrideAltCallerIdForVMRetrieval
        strip_diversion_on_vm_destination_retrieval:
            stripDiversionOnVMDestinationRetrieval
    """

    _ELEMENTS = (
        E(
            "override_alt_caller_id_for_vm_retrieval",
            "overrideAltCallerIdForVMRetrieval", bool,
        ),
        E(
            "strip_diversion_on_vm_destination_retrieval",
            "stripDiversionOnVMDestinationRetrieval", bool,
        ),
    )

    override_alt_caller_id_for_vm_retrieval: bool = Field(
        type=bool, required=False, mutable=False,
    )
    strip_diversion_on_vm_destination_retrieval: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemTimeScheduleDeleteRequest(OCIRequest):
    """
    Delete a system time schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        time_schedule_name: timeScheduleName
    """

    _ELEMENTS = (
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
    )

    time_schedule_name: str = Field(type=str, required=True, mutable=False)


class SystemTimeScheduleGetListRequest(OCIRequest):
    """
    Request a list of all system time schedules.

    The response is either a ``SystemTimeScheduleGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTimeScheduleGetRequest(OCIRequest):
    """
    Request to get a system time schedule.

    The response is either a ``SystemTimeScheduleGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        time_schedule_name: timeScheduleName
    """

    _ELEMENTS = (
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
    )

    time_schedule_name: str = Field(type=str, required=True, mutable=False)


class SystemTimeZoneGetListRequest(OCIRequest):
    """
    Requests the list of time zone names.

    The response is either ``SystemTimeZoneGetListResponse()`` or ``ErrorResponse()``.
    Replaced by ``SystemTimeZoneGetListRequest20()``.
    """

    _ELEMENTS = ()


class SystemTimeZoneGetListRequest20(OCIRequest):
    """
    Requests the configured time zone of the server processing the request and the list of
    time zone names.

    The response is either ``SystemTimeZoneGetListResponse20()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTreatmentMappingAccessSIPStatusAddRequest(OCIRequest):
    """
    Add an Access SIP Status Code Mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        sip_status_code: sipStatusCode
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("sip_status_code", "sipStatusCode", int, is_required=True),
        E("treatment_id", "treatmentId", str, is_required=True),
    )

    sip_status_code: int = Field(type=int, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=True, mutable=False)


class SystemTreatmentMappingAccessSIPStatusDeleteRequest(OCIRequest):
    """
    Delete an Access SIP Status Code mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        sip_status_code: sipStatusCode
    """

    _ELEMENTS = (
        E("sip_status_code", "sipStatusCode", int, is_required=True),
    )

    sip_status_code: int = Field(type=int, required=True, mutable=False)


class SystemTreatmentMappingAccessSIPStatusGetListRequest(OCIRequest):
    """
    Requests a table of all the existing Access Side SIP Status Code Mappings in the
    system.

    The response is either an ``SystemTreatmentMappingAccessSIPStatusGetListResponse()``
    or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTreatmentMappingAccessSIPStatusModifyRequest(OCIRequest):
    """
    Modify the fields for an Access SIP Status Code mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        sip_status_code: sipStatusCode
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("sip_status_code", "sipStatusCode", int, is_required=True),
        E("treatment_id", "treatmentId", str),
    )

    sip_status_code: int = Field(type=int, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=False, mutable=False)


class SystemTreatmentMappingCallBlockingServiceAddRequest(OCIRequest):
    """
    Add a Call Blocking Service mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        call_blocking_service: callBlockingService
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("call_blocking_service", "callBlockingService", str, is_required=True),
        E("treatment_id", "treatmentId", str, is_required=True),
    )

    call_blocking_service: str = Field(type=str, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=True, mutable=False)


class SystemTreatmentMappingCallBlockingServiceDeleteRequest(OCIRequest):
    """
    Delete a Call Blocking Service mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        call_blocking_service: callBlockingService
    """

    _ELEMENTS = (
        E("call_blocking_service", "callBlockingService", str, is_required=True),
    )

    call_blocking_service: str = Field(type=str, required=True, mutable=False)


class SystemTreatmentMappingCallBlockingServiceGetListRequest(OCIRequest):
    """
    Requests a table of all the existing Call Blocking Service Mappings in the system.

    The response is either a
    ``SystemTreatmentMappingCallBlockingServicesGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTreatmentMappingCallBlockingServiceGetListRequest19sp1(OCIRequest):
    """
    Requests a table of all the existing Call Blocking Service Mappings in the system.

    The response is either a
    ``SystemTreatmentMappingCallBlockingServicesGetListResponse19sp1()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTreatmentMappingCallBlockingServiceModifyRequest(OCIRequest):
    """
    Modify the fields for a Call Blocking Service mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        call_blocking_service: callBlockingService
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("call_blocking_service", "callBlockingService", str, is_required=True),
        E("treatment_id", "treatmentId", str),
    )

    call_blocking_service: str = Field(type=str, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=False, mutable=False)


class SystemTreatmentMappingInternalReleaseCauseAddRequest(OCIRequest):
    """
    Add an Internal Release Cause mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        internal_release_cause: internalReleaseCause
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("internal_release_cause", "internalReleaseCause", str, is_required=True),
        E("treatment_id", "treatmentId", str, is_required=True),
    )

    internal_release_cause: str = Field(type=str, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=True, mutable=False)


class SystemTreatmentMappingInternalReleaseCauseDeleteRequest(OCIRequest):
    """
    Delete an Internal Release Cause mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        internal_release_cause: internalReleaseCause
    """

    _ELEMENTS = (
        E("internal_release_cause", "internalReleaseCause", str, is_required=True),
    )

    internal_release_cause: str = Field(type=str, required=True, mutable=False)


class SystemTreatmentMappingInternalReleaseCauseGetListRequest(OCIRequest):
    """
    Requests a table of all the Internal Release Cause mappings in the system.

    The response is either a
    ``SystemTreatmentMappingInternalReleaseCauseGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTreatmentMappingInternalReleaseCauseModifyRequest(OCIRequest):
    """
    Modify the fields for an Internal Release Cause mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        internal_release_cause: internalReleaseCause
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("internal_release_cause", "internalReleaseCause", str, is_required=True),
        E("treatment_id", "treatmentId", str),
    )

    internal_release_cause: str = Field(type=str, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=False, mutable=False)


class SystemTreatmentMappingNetworkSIPStatusAddRequest(OCIRequest):
    """
    Add a Network SIP Status Code mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        sip_status_code: sipStatusCode
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("sip_status_code", "sipStatusCode", int, is_required=True),
        E("treatment_id", "treatmentId", str, is_required=True),
    )

    sip_status_code: int = Field(type=int, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=True, mutable=False)


class SystemTreatmentMappingNetworkSIPStatusDeleteRequest(OCIRequest):
    """
    Delete a Network SIP Status Code mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        sip_status_code: sipStatusCode
    """

    _ELEMENTS = (
        E("sip_status_code", "sipStatusCode", int, is_required=True),
    )

    sip_status_code: int = Field(type=int, required=True, mutable=False)


class SystemTreatmentMappingNetworkSIPStatusGetListRequest(OCIRequest):
    """
    Requests a table of all the existing Network SIP Status Code Mappings in the system.

    The response is either an
    ``SystemTreatmentMappingNetworkSIPStatusCodeGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTreatmentMappingNetworkSIPStatusModifyRequest(OCIRequest):
    """
    Modify the fields for a Network SIP Status Code mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        sip_status_code: sipStatusCode
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("sip_status_code", "sipStatusCode", int, is_required=True),
        E("treatment_id", "treatmentId", str),
    )

    sip_status_code: int = Field(type=int, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=False, mutable=False)


class SystemTreatmentMappingNetworkServerTreatmentAddRequest(OCIRequest):
    """
    Add a Network Server Treatment mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        ns_treatment: nsTreatment
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("ns_treatment", "nsTreatment", str, is_required=True),
        E("treatment_id", "treatmentId", str, is_required=True),
    )

    ns_treatment: str = Field(type=str, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=True, mutable=False)


class SystemTreatmentMappingNetworkServerTreatmentDeleteRequest(OCIRequest):
    """
    Delete a NS Treatment mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        ns_treatment: nsTreatment
    """

    _ELEMENTS = (
        E("ns_treatment", "nsTreatment", str, is_required=True),
    )

    ns_treatment: str = Field(type=str, required=True, mutable=False)


class SystemTreatmentMappingNetworkServerTreatmentGetListRequest(OCIRequest):
    """
    Requests a table of all the existing NS Treatment Mappings in the system.

    The response is either a
    ``SystemTreatmentMappingNetworkServerTreatmentGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTreatmentMappingNetworkServerTreatmentModifyRequest(OCIRequest):
    """
    Modify the fields for a Network Server Treatment mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        ns_treatment: nsTreatment
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("ns_treatment", "nsTreatment", str, is_required=True),
        E("treatment_id", "treatmentId", str),
    )

    ns_treatment: str = Field(type=str, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=False, mutable=False)


class SystemTreatmentMappingQ850CauseAddRequest(OCIRequest):
    """
    Add a Q850 Cause Value mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        q850_cause_value: q850CauseValue
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("q850_cause_value", "q850CauseValue", int, is_required=True),
        E("treatment_id", "treatmentId", str, is_required=True),
    )

    q850_cause_value: int = Field(type=int, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=True, mutable=False)


class SystemTreatmentMappingQ850CauseDeleteRequest(OCIRequest):
    """
    Delete a Q850 Cause Value mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        q850_cause_value: q850CauseValue
    """

    _ELEMENTS = (
        E("q850_cause_value", "q850CauseValue", int, is_required=True),
    )

    q850_cause_value: int = Field(type=int, required=True, mutable=False)


class SystemTreatmentMappingQ850CauseGetListRequest(OCIRequest):
    """
    Requests a table of all the existing Q850 Cause Value Mappings in the system.

    The response is either a ``SystemTreatmentMappingQ850CauseGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTreatmentMappingQ850CauseModifyRequest(OCIRequest):
    """
    Modify the fields for a Q850CauseValue mapping.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        q850_cause_value: q850CauseValue
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("q850_cause_value", "q850CauseValue", int, is_required=True),
        E("treatment_id", "treatmentId", str),
    )

    q850_cause_value: int = Field(type=int, required=True, mutable=False)
    treatment_id: str = Field(type=str, required=False, mutable=False)


class SystemTrunkGroupGetRequest(OCIRequest):
    """
    Request the system level data associated with the Trunk Group service.

    The response is either ``SystemTrunkGroupGetResponse()`` or ``ErrorResponse()``.
    Replaced by ``SystemTrunkGroupGetRequest19sp1()``.
    """

    _ELEMENTS = ()


class SystemTrunkGroupGetRequest19sp1(OCIRequest):
    """
    Request the system level data associated with the Trunk Group service.

    The response is either ``SystemTrunkGroupGetResponse19sp1()`` or ``ErrorResponse()``.
    Replaced by: ``SystemTrunkGroupGetRequest21()``
    """

    _ELEMENTS = ()


class SystemTrunkGroupGetRequest21(OCIRequest):
    """
    Request the system level data associated with the Trunk Group service.

    The response is either ``SystemTrunkGroupGetResponse21()`` or ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTrunkGroupModifyRequest(OCIRequest):
    """
    Modify the system level data associated with the Trunk Group Service.

    Following attributes are only used in IMS mode.  The values are saved if specified not
    in IMS mode: implicitRegistrationSetSupportPolicy
    sipIdentityForPilotAndProxyTrunkModesPolicy

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        enforce_clid_service_assignment_for_pilot_user:
            enforceCLIDServiceAssignmentForPilotUser
        terminate_unreachable_trigger_detection_on_receipt_of18x:
            terminateUnreachableTriggerDetectionOnReceiptOf18x
        pilot_user_calling_line_asserted_identity_policy:
            pilotUserCallingLineAssertedIdentityPolicy
        enforce_out_of_dialog_pbx_redirection_policies:
            enforceOutOfDialogPBXRedirectionPolicies
        unscreened_redirection_handling: unscreenedRedirectionHandling
        enable_holdover_of_highwater_call_counts: enableHoldoverOfHighwaterCallCounts
        holdover_period: holdoverPeriod
        time_zone_offset_minutes: timeZoneOffsetMinutes
        clid_source_for_screened_calls_policy: clidSourceForScreenedCallsPolicy
        user_lookup_policy: userLookupPolicy
        out_of_dialog_pbx_redirection_clid_mapping: outOfDialogPBXRedirectionCLIDMapping
        enforce_out_of_dialog_pbx_redirection_trunk_group_capacity:
            enforceOutOfDialogPBXRedirectionTrunkGroupCapacity
        implicit_registration_set_support_policy: implicitRegistrationSetSupportPolicy
        sip_identity_for_pilot_and_proxy_trunk_modes_policy:
            sipIdentityForPilotAndProxyTrunkModesPolicy
        support_connected_identity_policy: supportConnectedIdentityPolicy
    """

    _ELEMENTS = (
        E(
            "enforce_clid_service_assignment_for_pilot_user",
            "enforceCLIDServiceAssignmentForPilotUser", bool,
        ),
        E(
            "terminate_unreachable_trigger_detection_on_receipt_of18x",
            "terminateUnreachableTriggerDetectionOnReceiptOf18x", bool,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy", str,
        ),
        E(
            "enforce_out_of_dialog_pbx_redirection_policies",
            "enforceOutOfDialogPBXRedirectionPolicies", bool,
        ),
        E("unscreened_redirection_handling", "unscreenedRedirectionHandling", str),
        E(
            "enable_holdover_of_highwater_call_counts",
            "enableHoldoverOfHighwaterCallCounts", bool,
        ),
        E("holdover_period", "holdoverPeriod", int),
        E("time_zone_offset_minutes", "timeZoneOffsetMinutes", int),
        E("clid_source_for_screened_calls_policy", "clidSourceForScreenedCallsPolicy", str),
        E("user_lookup_policy", "userLookupPolicy", str),
        E(
            "out_of_dialog_pbx_redirection_clid_mapping",
            "outOfDialogPBXRedirectionCLIDMapping", str,
        ),
        E(
            "enforce_out_of_dialog_pbx_redirection_trunk_group_capacity",
            "enforceOutOfDialogPBXRedirectionTrunkGroupCapacity", bool,
        ),
        E(
            "implicit_registration_set_support_policy",
            "implicitRegistrationSetSupportPolicy", str,
        ),
        E(
            "sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "sipIdentityForPilotAndProxyTrunkModesPolicy", str,
        ),
        E("support_connected_identity_policy", "supportConnectedIdentityPolicy", str),
    )

    enforce_clid_service_assignment_for_pilot_user: bool = Field(
        type=bool, required=False, mutable=False,
    )
    terminate_unreachable_trigger_detection_on_receipt_of18x: bool = Field(
        type=bool, required=False, mutable=False,
    )
    pilot_user_calling_line_asserted_identity_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    enforce_out_of_dialog_pbx_redirection_policies: bool = Field(
        type=bool, required=False, mutable=False,
    )
    unscreened_redirection_handling: str = Field(type=str, required=False, mutable=False)
    enable_holdover_of_highwater_call_counts: bool = Field(
        type=bool, required=False, mutable=False,
    )
    holdover_period: int = Field(type=int, required=False, mutable=False)
    time_zone_offset_minutes: int = Field(type=int, required=False, mutable=False)
    clid_source_for_screened_calls_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    user_lookup_policy: str = Field(type=str, required=False, mutable=False)
    out_of_dialog_pbx_redirection_clid_mapping: str = Field(
        type=str, required=False, mutable=False,
    )
    enforce_out_of_dialog_pbx_redirection_trunk_group_capacity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    implicit_registration_set_support_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    sip_identity_for_pilot_and_proxy_trunk_modes_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    support_connected_identity_policy: str = Field(type=str, required=False, mutable=False)


class SystemTrunkGroupOptionsMessageResponseStatusCodeAddListRequest(OCIRequest):
    """
    Add a list of system level successful SIP OPTIONS message respoonse status codes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        status_code: statusCode
    """

    _ELEMENTS = (
        E("status_code", "statusCode", str, is_required=True),
    )

    status_code: str = Field(type=str, required=True, mutable=False)


class SystemTrunkGroupOptionsMessageResponseStatusCodeDeleteListRequest(OCIRequest):
    """
    Delete a list of system level successful SIP OPTIONS message respoonse status codes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        status_code: statusCode
    """

    _ELEMENTS = (
        E("status_code", "statusCode", str, is_required=True),
    )

    status_code: str = Field(type=str, required=True, mutable=False)


class SystemTrunkGroupOptionsMessageResponseStatusCodeGetListRequest(OCIRequest):
    """
    Get the list of system level successful SIP OPTIONS message respoonse status codes.

    The response is either
    ``SystemTrunkGroupOptionsMessageResponseStatusCodeGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTrunkGroupUserCreationTaskGetListRequest(OCIRequest):
    """
    Get the list of user creation tasks in the system.

    The response is either ``SystemTrunkGroupUserCreationTaskGetListResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTrunkGroupUserCreationTaskGetListRequest14sp4(OCIRequest):
    """
    Get the list of user creation tasks in the system.

    The response is either ``SystemTrunkGroupUserCreationTaskGetListResponse14sp4()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemTwoStageDialingAddDnRequest(OCIRequest):
    """
    Request to add Two Stage Dialing number to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
        description: description
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_required=True),
        E("description", "description", str),
    )

    phone_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemTwoStageDialingDeleteDnRequest(OCIRequest):
    """
    Request to delete a Two Stage Dialing number from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    phone_number: str = Field(type=str, required=True, mutable=False)


class SystemTwoStageDialingModifyDnRequest(OCIRequest):
    """
    Request to modify a Two Stage Dialing number's description in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
        description: description
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_required=True),
        E("description", "description", str),
    )

    phone_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemVideoServerAddRequest(OCIRequest):
    """
    Request to add a video server to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("transport_protocol", "transportProtocol", str, is_required=True),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemVideoServerDeleteRequest(OCIRequest):
    """
    Request to delete a video server from the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
    )

    net_address: str = Field(type=str, required=True, mutable=False)


class SystemVideoServerGetListRequest(OCIRequest):
    """
    Request to get a list of video servers defined in the system.

    The response is either a ``SystemVideoServerGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemVideoServerModifyRequest(OCIRequest):
    """
    Request to modify a video server in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        net_address: netAddress
        port: port
        transport_protocol: transportProtocol
        description: description
    """

    _ELEMENTS = (
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int),
        E("transport_protocol", "transportProtocol", str),
        E("description", "description", str),
    )

    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class SystemVideoServerParametersGetRequest(OCIRequest):
    """
    Request to get the list of video server system parameters.

    The response is either ``SystemVideoServerParametersGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemVideoServerParametersModifyRequest(OCIRequest):
    """
    Request to modify video server system parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        video_server_response_timer_milliseconds: videoServerResponseTimerMilliseconds
        video_server_selection_route_timer_milliseconds:
            videoServerSelectionRouteTimerMilliseconds
        use_static_video_server_device: useStaticVideoServerDevice
    """

    _ELEMENTS = (
        E(
            "video_server_response_timer_milliseconds",
            "videoServerResponseTimerMilliseconds", int,
        ),
        E(
            "video_server_selection_route_timer_milliseconds",
            "videoServerSelectionRouteTimerMilliseconds", int,
        ),
        E("use_static_video_server_device", "useStaticVideoServerDevice", bool),
    )

    video_server_response_timer_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )
    video_server_selection_route_timer_milliseconds: int = Field(
        type=int, required=False, mutable=False,
    )
    use_static_video_server_device: bool = Field(type=bool, required=False, mutable=False)


class SystemVirtualOnNetCallTypeAddRequest(OCIRequest):
    """
    Add a Virtual On-Net Call Type.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        virtual_on_net_call_type_name: virtualOnNetCallTypeName
        virtual_on_net_call_type_cdr_value: virtualOnNetCallTypeCdrValue
    """

    _ELEMENTS = (
        E("virtual_on_net_call_type_name", "virtualOnNetCallTypeName", str, is_required=True),
        E(
            "virtual_on_net_call_type_cdr_value", "virtualOnNetCallTypeCdrValue", str,
            is_required=True,
        ),
    )

    virtual_on_net_call_type_name: str = Field(type=str, required=True, mutable=False)
    virtual_on_net_call_type_cdr_value: str = Field(type=str, required=True, mutable=False)


class SystemVirtualOnNetCallTypeDeleteRequest(OCIRequest):
    """
    Delete a Virtual On-Net Call Type.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        virtual_on_net_call_type_name: virtualOnNetCallTypeName
    """

    _ELEMENTS = (
        E("virtual_on_net_call_type_name", "virtualOnNetCallTypeName", str, is_required=True),
    )

    virtual_on_net_call_type_name: str = Field(type=str, required=True, mutable=False)


class SystemVirtualOnNetCallTypeGetListRequest(OCIRequest):
    """
    Get the list Virtual On-Net Call Types in the system.

    The response is either a ``SystemVirtualOnNetCallTypeGetListResponse()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemVirtualOnNetCallTypeModifyRequest(OCIRequest):
    """
    Modify a Virtual On-Net Call Type.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        virtual_on_net_call_type_name: virtualOnNetCallTypeName
        virtual_on_net_call_type_cdr_value: virtualOnNetCallTypeCdrValue
    """

    _ELEMENTS = (
        E("virtual_on_net_call_type_name", "virtualOnNetCallTypeName", str, is_required=True),
        E("virtual_on_net_call_type_cdr_value", "virtualOnNetCallTypeCdrValue", str),
    )

    virtual_on_net_call_type_name: str = Field(type=str, required=True, mutable=False)
    virtual_on_net_call_type_cdr_value: str = Field(type=str, required=False, mutable=False)


class SystemVoiceMessageSummaryUpdateGetRequest(OCIRequest):
    """
    Requests system voice mail message summary update parameter settings.

    The response is either ``SystemVoiceMessageSummaryUpdateGetResponse()`` or
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemVoiceMessageSummaryUpdateModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Voice Messaging.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        send_saved_and_urgent_mwi_on_notification: sendSavedAndUrgentMWIOnNotification
        send_message_summary_update_on_register: sendMessageSummaryUpdateOnRegister
        min_time_between_mwi_on_register: minTimeBetweenMWIOnRegister
    """

    _ELEMENTS = (
        E(
            "send_saved_and_urgent_mwi_on_notification",
            "sendSavedAndUrgentMWIOnNotification", bool,
        ),
        E(
            "send_message_summary_update_on_register",
            "sendMessageSummaryUpdateOnRegister", bool,
        ),
        E("min_time_between_mwi_on_register", "minTimeBetweenMWIOnRegister", int),
    )

    send_saved_and_urgent_mwi_on_notification: bool = Field(
        type=bool, required=False, mutable=False,
    )
    send_message_summary_update_on_register: bool = Field(
        type=bool, required=False, mutable=False,
    )
    min_time_between_mwi_on_register: int = Field(type=int, required=False, mutable=False)


class SystemVoiceMessagingGroupGetPasscodeRulesRequest14(OCIRequest):
    """
    Requests the system voice portal passcode rules setting.

    The response is either ``SystemVoiceMessagingGroupGetPasscodeRulesResponse14()`` or
    ``ErrorResponse()``.

    Replaced By: ``SystemPortalPasscodeRulesGetRequest()``
    """

    _ELEMENTS = ()


class SystemVoiceMessagingGroupGetRequest14(OCIRequest):
    """
    Request the system level data associated with Voice Messaging.

    The response is either a ``SystemVoiceMessagingGroupGetResponse14()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemVoiceMessagingGroupGetRequest16(OCIRequest):
    """
    Request the system level data associated with Voice Messaging.

    The response is either a ``SystemVoiceMessagingGroupGetResponse16()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemVoiceMessagingGroupGetRequest16sp2(OCIRequest):
    """
    Request the system level data associated with Voice Messaging.

    The response is either a ``SystemVoiceMessagingGroupGetResponse16sp2()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemVoiceMessagingGroupGetRequest20(OCIRequest):
    """
    Request the system level data associated with Voice Messaging.

    The response is either a ``SystemVoiceMessagingGroupGetResponse20()`` or an
    ``ErrorResponse()``. Replaced by: ``SystemVoiceMessagingGroupGetRequest21()``
    """

    _ELEMENTS = ()


class SystemVoiceMessagingGroupGetRequest21(OCIRequest):
    """
    Request the system level data associated with Voice Messaging.

    The response is either a ``SystemVoiceMessagingGroupGetResponse21()`` or an
    ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest14(OCIRequest):
    """
    Requests the system voice portal Menus setting.

    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse14()`` or
    ``ErrorResponse()``.

    Attributes:
        get_default_menu_keys: getDefaultMenuKeys
    """

    _ELEMENTS = (
        E("get_default_menu_keys", "getDefaultMenuKeys", bool, is_required=True),
    )

    get_default_menu_keys: bool = Field(type=bool, required=True, mutable=False)


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest18(OCIRequest):
    """
    Requests the system voice portal Menus setting.

    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse18()`` or
    ``ErrorResponse()``. Replaced by
    ``SystemVoiceMessagingGroupGetVoicePortalMenusRequest19()``

    Attributes:
        get_default_menu_keys: getDefaultMenuKeys
    """

    _ELEMENTS = (
        E("get_default_menu_keys", "getDefaultMenuKeys", bool, is_required=True),
    )

    get_default_menu_keys: bool = Field(type=bool, required=True, mutable=False)


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest18sp1(OCIRequest):
    """
    Requests the system voice portal Menus setting.

    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse18sp1()``
    or ``ErrorResponse()``. Replaced by
    ``SystemVoiceMessagingGroupGetVoicePortalMenusRequest19sp1()``

    Attributes:
        get_default_menu_keys: getDefaultMenuKeys
    """

    _ELEMENTS = (
        E("get_default_menu_keys", "getDefaultMenuKeys", bool, is_required=True),
    )

    get_default_menu_keys: bool = Field(type=bool, required=True, mutable=False)


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest19(OCIRequest):
    """
    Requests the system voice portal Menus setting.

    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse19()`` or
    ``ErrorResponse()``. Replaced by
    ``SystemVoiceMessagingGroupGetVoicePortalMenusRequest19sp1()``

    Attributes:
        get_default_menu_keys: getDefaultMenuKeys
    """

    _ELEMENTS = (
        E("get_default_menu_keys", "getDefaultMenuKeys", bool, is_required=True),
    )

    get_default_menu_keys: bool = Field(type=bool, required=True, mutable=False)


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest19sp1(OCIRequest):
    """
    Requests the system voice portal Menus setting.

    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse19sp1()``
    or ``ErrorResponse()``. Replaced by
    ``SystemVoiceMessagingGroupGetVoicePortalMenusRequest20()``

    Attributes:
        get_default_menu_keys: getDefaultMenuKeys
    """

    _ELEMENTS = (
        E("get_default_menu_keys", "getDefaultMenuKeys", bool, is_required=True),
    )

    get_default_menu_keys: bool = Field(type=bool, required=True, mutable=False)


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest20(OCIRequest):
    """
    Requests the system voice portal Menus setting.

    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        get_default_menu_keys: getDefaultMenuKeys
    """

    _ELEMENTS = (
        E("get_default_menu_keys", "getDefaultMenuKeys", bool, is_required=True),
    )

    get_default_menu_keys: bool = Field(type=bool, required=True, mutable=False)


class SystemVoiceMessagingGroupGetVoicePortalMenusRequest21(OCIRequest):
    """
    Requests the system voice portal Menus setting.

    The response is either ``SystemVoiceMessagingGroupGetVoicePortalMenusResponse21()`` or
    ``ErrorResponse()``.

    Attributes:
        get_default_menu_keys: getDefaultMenuKeys
    """

    _ELEMENTS = (
        E("get_default_menu_keys", "getDefaultMenuKeys", bool, is_required=True),
    )

    get_default_menu_keys: bool = Field(type=bool, required=True, mutable=False)


class SystemVoiceMessagingGroupModifyPasscodeRulesRequest(OCIRequest):
    """
    Request to modify the system voice portal passcode rules setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemPortalPasscodeRulesModifyRequest()``

    Attributes:
        disallow_repeated_digits: disallowRepeatedDigits
        disallow_user_number: disallowUserNumber
        disallow_reversed_user_number: disallowReversedUserNumber
        disallow_old_passcode: disallowOldPasscode
        disallow_reversed_old_passcode: disallowReversedOldPasscode
        min_code_length: minCodeLength
        max_code_length: maxCodeLength
        disable_login_after_max_failed_login_attempts:
            disableLoginAfterMaxFailedLoginAttempts
        max_failed_login_attempts: maxFailedLoginAttempts
        expire_password: expirePassword
        passcode_expires_days: passcodeExpiresDays
        send_login_disabled_notify_email: sendLoginDisabledNotifyEmail
        login_disabled_notify_email_address: loginDisabledNotifyEmailAddress
        default_password: defaultPassword
    """

    _ELEMENTS = (
        E("disallow_repeated_digits", "disallowRepeatedDigits", bool),
        E("disallow_user_number", "disallowUserNumber", bool),
        E("disallow_reversed_user_number", "disallowReversedUserNumber", bool),
        E("disallow_old_passcode", "disallowOldPasscode", bool),
        E("disallow_reversed_old_passcode", "disallowReversedOldPasscode", bool),
        E("min_code_length", "minCodeLength", int),
        E("max_code_length", "maxCodeLength", int),
        E(
            "disable_login_after_max_failed_login_attempts",
            "disableLoginAfterMaxFailedLoginAttempts", bool,
        ),
        E("max_failed_login_attempts", "maxFailedLoginAttempts", int),
        E("expire_password", "expirePassword", bool),
        E("passcode_expires_days", "passcodeExpiresDays", int),
        E("send_login_disabled_notify_email", "sendLoginDisabledNotifyEmail", bool),
        E("login_disabled_notify_email_address", "loginDisabledNotifyEmailAddress", str),
        E("default_password", "defaultPassword", str),
    )

    disallow_repeated_digits: bool = Field(type=bool, required=False, mutable=False)
    disallow_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_user_number: bool = Field(type=bool, required=False, mutable=False)
    disallow_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    disallow_reversed_old_passcode: bool = Field(type=bool, required=False, mutable=False)
    min_code_length: int = Field(type=int, required=False, mutable=False)
    max_code_length: int = Field(type=int, required=False, mutable=False)
    disable_login_after_max_failed_login_attempts: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_failed_login_attempts: int = Field(type=int, required=False, mutable=False)
    expire_password: bool = Field(type=bool, required=False, mutable=False)
    passcode_expires_days: int = Field(type=int, required=False, mutable=False)
    send_login_disabled_notify_email: bool = Field(type=bool, required=False, mutable=False)
    login_disabled_notify_email_address: str = Field(type=str, required=False, mutable=False)
    default_password: str = Field(type=str, required=False, mutable=False)


class SystemVoiceMessagingGroupModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Voice Messaging.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        real_delete_for_imap: realDeleteForImap
        use_dn_in_mail_body: useDnInMailBody
        use_short_subject_line: useShortSubjectLine
        max_greeting_length_minutes: maxGreetingLengthMinutes
        max_message_length_minutes: maxMessageLengthMinutes
        max_mailbox_length_minutes: maxMailboxLengthMinutes
        does_message_age: doesMessageAge
        hold_period_days: holdPeriodDays
        mail_server_net_address: mailServerNetAddress
        mail_server_protocol: mailServerProtocol
        default_delivery_from_address: defaultDeliveryFromAddress
        default_notification_from_address: defaultNotificationFromAddress
        default_voice_portal_lockout_from_address: defaultVoicePortalLockoutFromAddress
        use_outgoing_mwi_on_smdi: useOutgoingMWIOnSMDI
        mwi_delay_in_seconds: mwiDelayInSeconds
        voice_portal_scope: voicePortalScope
        network_wide_messaging: networkWideMessaging
        use_external_routing: useExternalRouting
        default_external_routing_address: defaultExternalRoutingAddress
    """

    _ELEMENTS = (
        E("real_delete_for_imap", "realDeleteForImap", bool),
        E("use_dn_in_mail_body", "useDnInMailBody", bool),
        E("use_short_subject_line", "useShortSubjectLine", bool),
        E("max_greeting_length_minutes", "maxGreetingLengthMinutes", int),
        E("max_message_length_minutes", "maxMessageLengthMinutes", int),
        E("max_mailbox_length_minutes", "maxMailboxLengthMinutes", int),
        E("does_message_age", "doesMessageAge", bool),
        E("hold_period_days", "holdPeriodDays", int),
        E("mail_server_net_address", "mailServerNetAddress", str),
        E("mail_server_protocol", "mailServerProtocol", str),
        E("default_delivery_from_address", "defaultDeliveryFromAddress", str),
        E("default_notification_from_address", "defaultNotificationFromAddress", str),
        E(
            "default_voice_portal_lockout_from_address",
            "defaultVoicePortalLockoutFromAddress", str,
        ),
        E("use_outgoing_mwi_on_smdi", "useOutgoingMWIOnSMDI", bool),
        E("mwi_delay_in_seconds", "mwiDelayInSeconds", int),
        E("voice_portal_scope", "voicePortalScope", str),
        E("network_wide_messaging", "networkWideMessaging", bool),
        E("use_external_routing", "useExternalRouting", bool),
        E("default_external_routing_address", "defaultExternalRoutingAddress", str),
    )

    real_delete_for_imap: bool = Field(type=bool, required=False, mutable=False)
    use_dn_in_mail_body: bool = Field(type=bool, required=False, mutable=False)
    use_short_subject_line: bool = Field(type=bool, required=False, mutable=False)
    max_greeting_length_minutes: int = Field(type=int, required=False, mutable=False)
    max_message_length_minutes: int = Field(type=int, required=False, mutable=False)
    max_mailbox_length_minutes: int = Field(type=int, required=False, mutable=False)
    does_message_age: bool = Field(type=bool, required=False, mutable=False)
    hold_period_days: int = Field(type=int, required=False, mutable=False)
    mail_server_net_address: str = Field(type=str, required=False, mutable=False)
    mail_server_protocol: str = Field(type=str, required=False, mutable=False)
    default_delivery_from_address: str = Field(type=str, required=False, mutable=False)
    default_notification_from_address: str = Field(type=str, required=False, mutable=False)
    default_voice_portal_lockout_from_address: str = Field(
        type=str, required=False, mutable=False,
    )
    use_outgoing_mwi_on_smdi: bool = Field(type=bool, required=False, mutable=False)
    mwi_delay_in_seconds: int = Field(type=int, required=False, mutable=False)
    voice_portal_scope: str = Field(type=str, required=False, mutable=False)
    network_wide_messaging: bool = Field(type=bool, required=False, mutable=False)
    use_external_routing: bool = Field(type=bool, required=False, mutable=False)
    default_external_routing_address: str = Field(type=str, required=False, mutable=False)


class SystemVoiceMessagingGroupModifyRequest16(OCIRequest):
    """
    Modify the system level data associated with Voice Messaging.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: realDeleteForImap useDnInMailBody
    useShortSubjectLine maxMessageLengthMinutes maxMailboxLengthMinutes doesMessageAge
    holdPeriodDays mailServerNetAddress mailServerProtocol defaultDeliveryFromAddress
    defaultNotificationFromAddress useOutgoingMWIOnSMDI mwiDelayInSeconds voicePortalScope
    enterpriseVoicePortalLicensed networkWideMessaging useExternalRouting
    defaultExternalRoutingAddress vmOnlySystem
    clientInitiatedMailServerSessionTimeoutMinutes recordingAudioFileFormat

    Attributes:
        real_delete_for_imap: realDeleteForImap
        use_dn_in_mail_body: useDnInMailBody
        use_short_subject_line: useShortSubjectLine
        max_message_length_minutes: maxMessageLengthMinutes
        max_mailbox_length_minutes: maxMailboxLengthMinutes
        does_message_age: doesMessageAge
        hold_period_days: holdPeriodDays
        mail_server_net_address: mailServerNetAddress
        mail_server_protocol: mailServerProtocol
        default_delivery_from_address: defaultDeliveryFromAddress
        default_notification_from_address: defaultNotificationFromAddress
        default_voice_portal_lockout_from_address: defaultVoicePortalLockoutFromAddress
        use_outgoing_mwi_on_smdi: useOutgoingMWIOnSMDI
        mwi_delay_in_seconds: mwiDelayInSeconds
        voice_portal_scope: voicePortalScope
        network_wide_messaging: networkWideMessaging
        use_external_routing: useExternalRouting
        default_external_routing_address: defaultExternalRoutingAddress
        vm_only_system: vmOnlySystem
        client_initiated_mail_server_session_timeout_minutes:
            clientInitiatedMailServerSessionTimeoutMinutes
        recording_audio_file_format: recordingAudioFileFormat
    """

    _ELEMENTS = (
        E("real_delete_for_imap", "realDeleteForImap", bool),
        E("use_dn_in_mail_body", "useDnInMailBody", bool),
        E("use_short_subject_line", "useShortSubjectLine", bool),
        E("max_message_length_minutes", "maxMessageLengthMinutes", int),
        E("max_mailbox_length_minutes", "maxMailboxLengthMinutes", int),
        E("does_message_age", "doesMessageAge", bool),
        E("hold_period_days", "holdPeriodDays", int),
        E("mail_server_net_address", "mailServerNetAddress", str),
        E("mail_server_protocol", "mailServerProtocol", str),
        E("default_delivery_from_address", "defaultDeliveryFromAddress", str),
        E("default_notification_from_address", "defaultNotificationFromAddress", str),
        E(
            "default_voice_portal_lockout_from_address",
            "defaultVoicePortalLockoutFromAddress", str,
        ),
        E("use_outgoing_mwi_on_smdi", "useOutgoingMWIOnSMDI", bool),
        E("mwi_delay_in_seconds", "mwiDelayInSeconds", int),
        E("voice_portal_scope", "voicePortalScope", str),
        E("network_wide_messaging", "networkWideMessaging", bool),
        E("use_external_routing", "useExternalRouting", bool),
        E("default_external_routing_address", "defaultExternalRoutingAddress", str),
        E("vm_only_system", "vmOnlySystem", bool),
        E(
            "client_initiated_mail_server_session_timeout_minutes",
            "clientInitiatedMailServerSessionTimeoutMinutes", int,
        ),
        E("recording_audio_file_format", "recordingAudioFileFormat", str),
    )

    real_delete_for_imap: bool = Field(type=bool, required=False, mutable=False)
    use_dn_in_mail_body: bool = Field(type=bool, required=False, mutable=False)
    use_short_subject_line: bool = Field(type=bool, required=False, mutable=False)
    max_message_length_minutes: int = Field(type=int, required=False, mutable=False)
    max_mailbox_length_minutes: int = Field(type=int, required=False, mutable=False)
    does_message_age: bool = Field(type=bool, required=False, mutable=False)
    hold_period_days: int = Field(type=int, required=False, mutable=False)
    mail_server_net_address: str = Field(type=str, required=False, mutable=False)
    mail_server_protocol: str = Field(type=str, required=False, mutable=False)
    default_delivery_from_address: str = Field(type=str, required=False, mutable=False)
    default_notification_from_address: str = Field(type=str, required=False, mutable=False)
    default_voice_portal_lockout_from_address: str = Field(
        type=str, required=False, mutable=False,
    )
    use_outgoing_mwi_on_smdi: bool = Field(type=bool, required=False, mutable=False)
    mwi_delay_in_seconds: int = Field(type=int, required=False, mutable=False)
    voice_portal_scope: str = Field(type=str, required=False, mutable=False)
    network_wide_messaging: bool = Field(type=bool, required=False, mutable=False)
    use_external_routing: bool = Field(type=bool, required=False, mutable=False)
    default_external_routing_address: str = Field(type=str, required=False, mutable=False)
    vm_only_system: bool = Field(type=bool, required=False, mutable=False)
    client_initiated_mail_server_session_timeout_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    recording_audio_file_format: str = Field(type=str, required=False, mutable=False)


class SystemVoiceMessagingGroupModifyVoicePortalMenusRequest(OCIRequest):
    """
    Request to modify the system voice portal menus setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        use_voice_portal_customization: useVoicePortalCustomization
        voice_portal_main_menu_keys: voicePortalMainMenuKeys
        voice_messaging_menu_keys: voiceMessagingMenuKeys
        play_greeting_menu_keys: playGreetingMenuKeys
        change_busy_or_no_answer_greeting_menu_keys: changeBusyOrNoAnswerGreetingMenuKeys
        change_extended_away_greeting_menu_keys: changeExtendedAwayGreetingMenuKeys
        record_new_greeting_or_personalized_name_menu_keys:
            recordNewGreetingOrPersonalizedNameMenuKeys
        delete_all_messages_menu_keys: deleteAllMessagesMenuKeys
        comm_pilot_express_profile_menu_keys: commPilotExpressProfileMenuKeys
        personalized_name_menu_keys: personalizedNameMenuKeys
        call_forwarding_options_menu_keys: callForwardingOptionsMenuKeys
        change_call_forwarding_destination_menu_keys:
            changeCallForwardingDestinationMenuKeys
        voice_portal_calling_menu_keys: voicePortalCallingMenuKeys
        hoteling_menu_keys: hotelingMenuKeys
        passcode_menu_keys: passcodeMenuKeys
        play_messages_menu_keys: playMessagesMenuKeys
        play_message_menu_keys: playMessageMenuKeys
        additional_message_options_menu_keys: additionalMessageOptionsMenuKeys
        forward_or_compose_message_menu_keys: forwardOrComposeMessageMenuKeys
        reply_message_menu_keys: replyMessageMenuKeys
        send_to_distribution_list_menu_keys: sendToDistributionListMenuKeys
        select_distribution_list_menu_keys: selectDistributionListMenuKeys
        review_selected_distribution_list_menu_keys:
            reviewSelectedDistributionListMenuKeys
        send_message_to_selected_distribution_list_menu_keys:
            sendMessageToSelectedDistributionListMenuKeys
        send_to_all_group_members_menu_keys: sendToAllGroupMembersMenuKeys
        send_to_person_menu_keys: sendToPersonMenuKeys
        change_current_introduction_or_message_or_reply_menu_keys:
            changeCurrentIntroductionOrMessageOrReplyMenuKeys
        voice_portal_login_menu_keys: voicePortalLoginMenuKeys
        fax_messaging_menu_keys: faxMessagingMenuKeys
        message_deposit_menu_keys: messageDepositMenuKeys
        disable_message_deposit_menu_keys: disableMessageDepositMenuKeys
        greeting_only_forwarding_destination_menu_keys:
            greetingOnlyForwardingDestinationMenuKeys
    """

    _ELEMENTS = (
        E("use_voice_portal_customization", "useVoicePortalCustomization", bool),
        E(
            "voice_portal_main_menu_keys", "voicePortalMainMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "voice_messaging_menu_keys", "voiceMessagingMenuKeys", str, is_complex=True,
        ),  # unknown
        E("play_greeting_menu_keys", "playGreetingMenuKeys", str, is_complex=True),  # unknown
        E(
            "change_busy_or_no_answer_greeting_menu_keys",
            "changeBusyOrNoAnswerGreetingMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "change_extended_away_greeting_menu_keys",
            "changeExtendedAwayGreetingMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "record_new_greeting_or_personalized_name_menu_keys",
            "recordNewGreetingOrPersonalizedNameMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "delete_all_messages_menu_keys", "deleteAllMessagesMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "comm_pilot_express_profile_menu_keys", "commPilotExpressProfileMenuKeys",
            str, is_complex=True,
        ),  # unknown
        E(
            "personalized_name_menu_keys", "personalizedNameMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "call_forwarding_options_menu_keys", "callForwardingOptionsMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "change_call_forwarding_destination_menu_keys",
            "changeCallForwardingDestinationMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "voice_portal_calling_menu_keys", "voicePortalCallingMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E("hoteling_menu_keys", "hotelingMenuKeys", str, is_complex=True),  # unknown
        E("passcode_menu_keys", "passcodeMenuKeys", str, is_complex=True),  # unknown
        E("play_messages_menu_keys", "playMessagesMenuKeys", str, is_complex=True),  # unknown
        E("play_message_menu_keys", "playMessageMenuKeys", str, is_complex=True),  # unknown
        E(
            "additional_message_options_menu_keys", "additionalMessageOptionsMenuKeys",
            str, is_complex=True,
        ),  # unknown
        E(
            "forward_or_compose_message_menu_keys", "forwardOrComposeMessageMenuKeys",
            str, is_complex=True,
        ),  # unknown
        E("reply_message_menu_keys", "replyMessageMenuKeys", str, is_complex=True),  # unknown
        E(
            "send_to_distribution_list_menu_keys", "sendToDistributionListMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "select_distribution_list_menu_keys", "selectDistributionListMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "review_selected_distribution_list_menu_keys",
            "reviewSelectedDistributionListMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "send_message_to_selected_distribution_list_menu_keys",
            "sendMessageToSelectedDistributionListMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "send_to_all_group_members_menu_keys", "sendToAllGroupMembersMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "send_to_person_menu_keys", "sendToPersonMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "change_current_introduction_or_message_or_reply_menu_keys",
            "changeCurrentIntroductionOrMessageOrReplyMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "voice_portal_login_menu_keys", "voicePortalLoginMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E("fax_messaging_menu_keys", "faxMessagingMenuKeys", str, is_complex=True),  # unknown
        E(
            "message_deposit_menu_keys", "messageDepositMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "disable_message_deposit_menu_keys", "disableMessageDepositMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "greeting_only_forwarding_destination_menu_keys",
            "greetingOnlyForwardingDestinationMenuKeys", str, is_complex=True,
        ),  # unknown
    )

    use_voice_portal_customization: bool = Field(type=bool, required=False, mutable=False)
    voice_portal_main_menu_keys: str = Field(type=str, required=False, mutable=False)
    voice_messaging_menu_keys: str = Field(type=str, required=False, mutable=False)
    play_greeting_menu_keys: str = Field(type=str, required=False, mutable=False)
    change_busy_or_no_answer_greeting_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    change_extended_away_greeting_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    record_new_greeting_or_personalized_name_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    delete_all_messages_menu_keys: str = Field(type=str, required=False, mutable=False)
    comm_pilot_express_profile_menu_keys: str = Field(type=str, required=False, mutable=False)
    personalized_name_menu_keys: str = Field(type=str, required=False, mutable=False)
    call_forwarding_options_menu_keys: str = Field(type=str, required=False, mutable=False)
    change_call_forwarding_destination_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    voice_portal_calling_menu_keys: str = Field(type=str, required=False, mutable=False)
    hoteling_menu_keys: str = Field(type=str, required=False, mutable=False)
    passcode_menu_keys: str = Field(type=str, required=False, mutable=False)
    play_messages_menu_keys: str = Field(type=str, required=False, mutable=False)
    play_message_menu_keys: str = Field(type=str, required=False, mutable=False)
    additional_message_options_menu_keys: str = Field(type=str, required=False, mutable=False)
    forward_or_compose_message_menu_keys: str = Field(type=str, required=False, mutable=False)
    reply_message_menu_keys: str = Field(type=str, required=False, mutable=False)
    send_to_distribution_list_menu_keys: str = Field(type=str, required=False, mutable=False)
    select_distribution_list_menu_keys: str = Field(type=str, required=False, mutable=False)
    review_selected_distribution_list_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    send_message_to_selected_distribution_list_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    send_to_all_group_members_menu_keys: str = Field(type=str, required=False, mutable=False)
    send_to_person_menu_keys: str = Field(type=str, required=False, mutable=False)
    change_current_introduction_or_message_or_reply_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    voice_portal_login_menu_keys: str = Field(type=str, required=False, mutable=False)
    fax_messaging_menu_keys: str = Field(type=str, required=False, mutable=False)
    message_deposit_menu_keys: str = Field(type=str, required=False, mutable=False)
    disable_message_deposit_menu_keys: str = Field(type=str, required=False, mutable=False)
    greeting_only_forwarding_destination_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )


class SystemVoiceMessagingGroupModifyVoicePortalMenusRequest19(OCIRequest):
    """
    Request to modify the system voice portal menus setting.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        use_voice_portal_customization: useVoicePortalCustomization
        voice_portal_main_menu_keys: voicePortalMainMenuKeys
        announcement_menu_keys: announcementMenuKeys
        announcement_recording_menu_keys: announcementRecordingMenuKeys
        greetings_menu_keys: greetingsMenuKeys
        conference_greeting_menu_keys: conferenceGreetingMenuKeys
        voice_messaging_menu_keys: voiceMessagingMenuKeys
        play_greeting_menu_keys: playGreetingMenuKeys
        change_busy_or_no_answer_greeting_menu_keys: changeBusyOrNoAnswerGreetingMenuKeys
        change_extended_away_greeting_menu_keys: changeExtendedAwayGreetingMenuKeys
        record_new_greeting_or_personalized_name_menu_keys:
            recordNewGreetingOrPersonalizedNameMenuKeys
        delete_all_messages_menu_keys: deleteAllMessagesMenuKeys
        comm_pilot_express_profile_menu_keys: commPilotExpressProfileMenuKeys
        personalized_name_menu_keys: personalizedNameMenuKeys
        call_forwarding_options_menu_keys: callForwardingOptionsMenuKeys
        change_call_forwarding_destination_menu_keys:
            changeCallForwardingDestinationMenuKeys
        voice_portal_calling_menu_keys: voicePortalCallingMenuKeys
        hoteling_menu_keys: hotelingMenuKeys
        passcode_menu_keys: passcodeMenuKeys
        play_messages_menu_keys: playMessagesMenuKeys
        play_message_menu_keys: playMessageMenuKeys
        additional_message_options_menu_keys: additionalMessageOptionsMenuKeys
        forward_or_compose_message_menu_keys: forwardOrComposeMessageMenuKeys
        reply_message_menu_keys: replyMessageMenuKeys
        send_to_distribution_list_menu_keys: sendToDistributionListMenuKeys
        select_distribution_list_menu_keys: selectDistributionListMenuKeys
        review_selected_distribution_list_menu_keys:
            reviewSelectedDistributionListMenuKeys
        send_message_to_selected_distribution_list_menu_keys:
            sendMessageToSelectedDistributionListMenuKeys
        send_to_all_group_members_menu_keys: sendToAllGroupMembersMenuKeys
        send_to_person_menu_keys: sendToPersonMenuKeys
        change_current_introduction_or_message_or_reply_menu_keys:
            changeCurrentIntroductionOrMessageOrReplyMenuKeys
        voice_portal_login_menu_keys: voicePortalLoginMenuKeys
        fax_messaging_menu_keys: faxMessagingMenuKeys
        message_deposit_menu_keys: messageDepositMenuKeys
        disable_message_deposit_menu_keys: disableMessageDepositMenuKeys
        greeting_only_forwarding_destination_menu_keys:
            greetingOnlyForwardingDestinationMenuKeys
        personal_assistant_menu_keys: personalAssistantMenuKeys
    """

    _ELEMENTS = (
        E("use_voice_portal_customization", "useVoicePortalCustomization", bool),
        E(
            "voice_portal_main_menu_keys", "voicePortalMainMenuKeys", str, is_complex=True,
        ),  # unknown
        E("announcement_menu_keys", "announcementMenuKeys", str, is_complex=True),  # unknown
        E(
            "announcement_recording_menu_keys", "announcementRecordingMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E("greetings_menu_keys", "greetingsMenuKeys", str, is_complex=True),  # unknown
        E(
            "conference_greeting_menu_keys", "conferenceGreetingMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "voice_messaging_menu_keys", "voiceMessagingMenuKeys", str, is_complex=True,
        ),  # unknown
        E("play_greeting_menu_keys", "playGreetingMenuKeys", str, is_complex=True),  # unknown
        E(
            "change_busy_or_no_answer_greeting_menu_keys",
            "changeBusyOrNoAnswerGreetingMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "change_extended_away_greeting_menu_keys",
            "changeExtendedAwayGreetingMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "record_new_greeting_or_personalized_name_menu_keys",
            "recordNewGreetingOrPersonalizedNameMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "delete_all_messages_menu_keys", "deleteAllMessagesMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "comm_pilot_express_profile_menu_keys", "commPilotExpressProfileMenuKeys",
            str, is_complex=True,
        ),  # unknown
        E(
            "personalized_name_menu_keys", "personalizedNameMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "call_forwarding_options_menu_keys", "callForwardingOptionsMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "change_call_forwarding_destination_menu_keys",
            "changeCallForwardingDestinationMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "voice_portal_calling_menu_keys", "voicePortalCallingMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E("hoteling_menu_keys", "hotelingMenuKeys", str, is_complex=True),  # unknown
        E("passcode_menu_keys", "passcodeMenuKeys", str, is_complex=True),  # unknown
        E("play_messages_menu_keys", "playMessagesMenuKeys", str, is_complex=True),  # unknown
        E("play_message_menu_keys", "playMessageMenuKeys", str, is_complex=True),  # unknown
        E(
            "additional_message_options_menu_keys", "additionalMessageOptionsMenuKeys",
            str, is_complex=True,
        ),  # unknown
        E(
            "forward_or_compose_message_menu_keys", "forwardOrComposeMessageMenuKeys",
            str, is_complex=True,
        ),  # unknown
        E("reply_message_menu_keys", "replyMessageMenuKeys", str, is_complex=True),  # unknown
        E(
            "send_to_distribution_list_menu_keys", "sendToDistributionListMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "select_distribution_list_menu_keys", "selectDistributionListMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "review_selected_distribution_list_menu_keys",
            "reviewSelectedDistributionListMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "send_message_to_selected_distribution_list_menu_keys",
            "sendMessageToSelectedDistributionListMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "send_to_all_group_members_menu_keys", "sendToAllGroupMembersMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "send_to_person_menu_keys", "sendToPersonMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "change_current_introduction_or_message_or_reply_menu_keys",
            "changeCurrentIntroductionOrMessageOrReplyMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "voice_portal_login_menu_keys", "voicePortalLoginMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E("fax_messaging_menu_keys", "faxMessagingMenuKeys", str, is_complex=True),  # unknown
        E(
            "message_deposit_menu_keys", "messageDepositMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "disable_message_deposit_menu_keys", "disableMessageDepositMenuKeys", str,
            is_complex=True,
        ),  # unknown
        E(
            "greeting_only_forwarding_destination_menu_keys",
            "greetingOnlyForwardingDestinationMenuKeys", str, is_complex=True,
        ),  # unknown
        E(
            "personal_assistant_menu_keys", "personalAssistantMenuKeys", str,
            is_complex=True,
        ),  # unknown
    )

    use_voice_portal_customization: bool = Field(type=bool, required=False, mutable=False)
    voice_portal_main_menu_keys: str = Field(type=str, required=False, mutable=False)
    announcement_menu_keys: str = Field(type=str, required=False, mutable=False)
    announcement_recording_menu_keys: str = Field(type=str, required=False, mutable=False)
    greetings_menu_keys: str = Field(type=str, required=False, mutable=False)
    conference_greeting_menu_keys: str = Field(type=str, required=False, mutable=False)
    voice_messaging_menu_keys: str = Field(type=str, required=False, mutable=False)
    play_greeting_menu_keys: str = Field(type=str, required=False, mutable=False)
    change_busy_or_no_answer_greeting_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    change_extended_away_greeting_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    record_new_greeting_or_personalized_name_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    delete_all_messages_menu_keys: str = Field(type=str, required=False, mutable=False)
    comm_pilot_express_profile_menu_keys: str = Field(type=str, required=False, mutable=False)
    personalized_name_menu_keys: str = Field(type=str, required=False, mutable=False)
    call_forwarding_options_menu_keys: str = Field(type=str, required=False, mutable=False)
    change_call_forwarding_destination_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    voice_portal_calling_menu_keys: str = Field(type=str, required=False, mutable=False)
    hoteling_menu_keys: str = Field(type=str, required=False, mutable=False)
    passcode_menu_keys: str = Field(type=str, required=False, mutable=False)
    play_messages_menu_keys: str = Field(type=str, required=False, mutable=False)
    play_message_menu_keys: str = Field(type=str, required=False, mutable=False)
    additional_message_options_menu_keys: str = Field(type=str, required=False, mutable=False)
    forward_or_compose_message_menu_keys: str = Field(type=str, required=False, mutable=False)
    reply_message_menu_keys: str = Field(type=str, required=False, mutable=False)
    send_to_distribution_list_menu_keys: str = Field(type=str, required=False, mutable=False)
    select_distribution_list_menu_keys: str = Field(type=str, required=False, mutable=False)
    review_selected_distribution_list_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    send_message_to_selected_distribution_list_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    send_to_all_group_members_menu_keys: str = Field(type=str, required=False, mutable=False)
    send_to_person_menu_keys: str = Field(type=str, required=False, mutable=False)
    change_current_introduction_or_message_or_reply_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    voice_portal_login_menu_keys: str = Field(type=str, required=False, mutable=False)
    fax_messaging_menu_keys: str = Field(type=str, required=False, mutable=False)
    message_deposit_menu_keys: str = Field(type=str, required=False, mutable=False)
    disable_message_deposit_menu_keys: str = Field(type=str, required=False, mutable=False)
    greeting_only_forwarding_destination_menu_keys: str = Field(
        type=str, required=False, mutable=False,
    )
    personal_assistant_menu_keys: str = Field(type=str, required=False, mutable=False)


class SystemZoneCallingRestrictionsZoneAddRequest(OCIRequest):
    """
    Add a zone.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``SystemZoneAddRequest()``

    Attributes:
        zone_name: zoneName
        physical_location: physicalLocation
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("physical_location", "physicalLocation", str),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    physical_location: str = Field(type=str, required=False, mutable=False)


class SystemZoneCallingRestrictionsZoneDeleteRequest(OCIRequest):
    """
    Deletes a zone from the system The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.

    Replaced by: ``SystemZoneDeleteRequest()``

    Attributes:
        zone_name: zoneName
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)


class SystemZoneCallingRestrictionsZoneGetListRequest(OCIRequest):
    """
    Gets a list of all zones defined in the system The response is
    ``SystemZoneCallingRestrictionsZoneGetListResponse()`` or an ``ErrorResponse()``.

    Replaced by: ``SystemZoneGetListRequest()``
    """

    _ELEMENTS = ()


class SystemZoneCallingRestrictionsZoneModifyRequest(OCIRequest):
    """
    Modifies attributes of a zone in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``SystemZonePhysicalLocationAddListRequest()`` and
    ``SystemZonePhysicalLocationDeleteListRequest()``

    Attributes:
        zone_name: zoneName
        physical_location: physicalLocation
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("physical_location", "physicalLocation", str),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    physical_location: str = Field(type=str, required=False, mutable=False)


class SystemZoneCallingZonePhysicalLocationGetRequest(OCIRequest):
    """
    Returns a zone calling physical location for a given zone.

    Response is ``SystemZoneCallingZonePhysicalLocationGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        zone_name: zoneName
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)


class SystemZoneCallingZonePhysicalLocationModifyRequest(OCIRequest):
    """
    Modifies a zone calling physical location for a given zone.

    Response is a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        zone_name: zoneName
        physical_location: physicalLocation
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("physical_location", "physicalLocation", str),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    physical_location: str = Field(type=str, required=False, mutable=False)


class SystemZoneDeleteRequest(OCIRequest):
    """
    Delete a Zone.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        zone_name: zoneName
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)


class SystemZoneGetListRequest(OCIRequest):
    """
    Get the list of all Zones.

    The response is either a ``SystemZoneGetListResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class SystemZoneLocationBasedPhysicalLocationAddListRequest(OCIRequest):
    """
    Adds a list of physical locations to a zone The response is ``SuccessResponse()`` or
    an ``ErrorResponse()``.


    Attributes:
        zone_name: zoneName
        physical_location: physicalLocation
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("physical_location", "physicalLocation", str, is_array=True),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    physical_location: "List[str]" = Field(type=list, required=False, mutable=False)


class SystemZoneLocationBasedPhysicalLocationDeleteListRequest(OCIRequest):
    """
    Deletes a list of physical addresses from a zone The response is ``SuccessResponse()``
    or an ``ErrorResponse()``.


    Attributes:
        zone_name: zoneName
        physical_location: physicalLocation
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("physical_location", "physicalLocation", str, is_array=True),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    physical_location: "List[str]" = Field(type=list, required=False, mutable=False)


class TutorialFlagGetRequest(OCIRequest):
    """
    Get the tutorial flag setting for a user or admin.

    The response is either a ``TutorialFlagGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class TutorialFlagModifyRequest(OCIRequest):
    """
    Modify the tutorial flag setting for a user or admin.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        enable_tutorial: enableTutorial
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("enable_tutorial", "enableTutorial", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    enable_tutorial: bool = Field(type=bool, required=False, mutable=False)


class UserAdviceOfChargeGetRequest(OCIRequest):
    """
    Request the user level data associated with Advice Of Charge.

    The response is either a ``UserAdviceOfChargeGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAdviceOfChargeModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Advice of Charge.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        aoc_type: aocType
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("aoc_type", "aocType", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    aoc_type: str = Field(type=str, required=False, mutable=False)


class UserAlternateNumbersGetRequest(OCIRequest):
    """
    Request the user level data associated with Alternate Numbers.

    The response is either a ``UserAlternateNumbersGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAlternateNumbersGetRequest17(OCIRequest):
    """
    Request the user level data associated with Alternate Numbers.

    The response is either a ``UserAlternateNumbersGetResponse17()`` or an
    ``ErrorResponse()``. Replaced by: ``UserAlternateNumbersGetRequest21()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAlternateNumbersGetRequest21(OCIRequest):
    """
    Request the user level data associated with alternate numbers.

    The response is either a ``UserAlternateNumbersGetResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAnnouncementFileGetAvailableListRequest(OCIRequest):
    """
    Get the list of available announcement files for a User from the Announcement
    Repository, for Virtual subscribers the list will also include the announcements for
    it's group.


    Attributes:
        user_id: userId
        announcement_file_type: announcementFileType
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("announcement_file_type", "announcementFileType", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_type: str = Field(type=str, required=False, mutable=False)


class UserAnonymousCallRejectionGetRequest(OCIRequest):
    """
    Request the user level data associated with Anonymous Call Rejection.

    The response is either a ``UserAnonymousCallRejectionGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAnonymousCallRejectionModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Anonymous Call Rejection.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserAssignedServicesGetListRequest(OCIRequest):
    """
    Get the list of assigned User and Group Services for the specified user.

    The response is either an ``UserAssignedServicesGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str),
    )

    user_id: str = Field(type=str, required=False, mutable=False)


class UserAttendantConsoleAddUserListRequest(OCIRequest):
    """
    Add users to the Attendant Console monitored users list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        monitored_user_id: monitoredUserId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("monitored_user_id", "monitoredUserId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    monitored_user_id: str = Field(type=str, required=True, mutable=False)


class UserAttendantConsoleDeleteUserListRequest(OCIRequest):
    """
    Remove users from the Attendant Console monitored users list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        monitored_user_id: monitoredUserId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("monitored_user_id", "monitoredUserId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    monitored_user_id: str = Field(type=str, required=True, mutable=False)


class UserAttendantConsoleGetRequest(OCIRequest):
    """
    Request user's attendant console settings.

    The response is either a ``UserAttendantConsoleGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAttendantConsoleGetRequest14sp2(OCIRequest):
    """
    Request user's attendant console settings.

    The response is either a ``UserAttendantConsoleGetResponse14sp2()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAuthenticationGetRequest(OCIRequest):
    """
    Get the user's authentication service information.

    The response is either a ``UserAuthenticationGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAuthenticationModifyRequest(OCIRequest):
    """
    Modify the user's authentication service information.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        user_name: userName
        new_password: newPassword
        password: password
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("user_name", "userName", str),
        E("new_password", "newPassword", str),
        E("password", "password", str, is_complex=True),  # unknown
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    user_name: str = Field(type=str, required=False, mutable=False)
    new_password: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)


class UserAutomaticCallbackGetRequest(OCIRequest):
    """
    Request the user level data associated with Automatic Callback.

    The response is either a ``UserAutomaticCallbackGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAutomaticCallbackModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Automatic Callback.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserAutomaticHoldRetrieveGetRequest(OCIRequest):
    """
    Request the user level data associated with Automatic Hold/Retrieve.

    The response is either a ``UserAutomaticHoldRetrieveGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserAutomaticHoldRetrieveModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Automatic Hold/Retrieve.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        recall_timer_seconds: recallTimerSeconds
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("recall_timer_seconds", "recallTimerSeconds", int),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    recall_timer_seconds: int = Field(type=int, required=False, mutable=False)


class UserBargeInExemptGetRequest(OCIRequest):
    """
    Request the user level data associated with Barge In Exempt.

    The response is either a ``UserBargeInExemptGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBargeInExemptModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Barge In Exempt.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserBasicCallLogsGetListRequest(OCIRequest):
    """
    Request user's call logs.

    If the callLogType is not specified, all types of calls are returned.

    The response is either a ``UserBasicCallLogsGetListResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserBasicCallLogsGetListRequest14sp4()``

    Attributes:
        user_id: userId
        call_log_type: callLogType
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("call_log_type", "callLogType", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)


class UserBasicCallLogsGetListRequest14sp4(OCIRequest):
    """
    Request user's call logs.

    If the callLogType is not specified, all types of calls are returned.

    The response is either a ``UserBasicCallLogsGetListResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        call_log_type: callLogType
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("call_log_type", "callLogType", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)


class UserBroadWorksAnywhereAddPhoneNumberRequest(OCIRequest):
    """
    Add a broadworks Anywhere phone number.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        description: description
        is_active: isActive
        outbound_alternate_number: outboundAlternateNumber
        broadworks_call_control: broadworksCallControl
        use_diversion_inhibitor: useDiversionInhibitor
        answer_confirmation_required: answerConfirmationRequired
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("description", "description", str),
        E("is_active", "isActive", bool, is_required=True),
        E("outbound_alternate_number", "outboundAlternateNumber", str),
        E("broadworks_call_control", "broadworksCallControl", bool, is_required=True),
        E("use_diversion_inhibitor", "useDiversionInhibitor", bool, is_required=True),
        E(
            "answer_confirmation_required", "answerConfirmationRequired", bool,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    is_active: bool = Field(type=bool, required=True, mutable=False)
    outbound_alternate_number: str = Field(type=str, required=False, mutable=False)
    broadworks_call_control: bool = Field(type=bool, required=True, mutable=False)
    use_diversion_inhibitor: bool = Field(type=bool, required=True, mutable=False)
    answer_confirmation_required: bool = Field(type=bool, required=True, mutable=False)


class UserBroadWorksAnywhereDeletePhoneNumberRequest(OCIRequest):
    """
    Delete a broadworks anywhere phone number.

    Also deletes all the selective criteria for the phone number.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksAnywhereDeleteSelectiveCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's BroadWorks Anywhere phone number.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksAnywhereGetAvailablePortalListRequest(OCIRequest):
    """
    Get a list of all the available BroadWorks Anywhere portal instances for a specific
    user The response is either ``UserBroadWorksAnywhereGetAvailableListResponse()`` or
    ``ErrorResponse()``.


    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksAnywhereGetPhoneNumberRequest(OCIRequest):
    """
    Get a broadworks anywhere phone number The response is
    ``UserBroadWorksAnywhereGetPhoneNumberResponse()``.


    Attributes:
        user_id: userId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksAnywhereGetRequest(OCIRequest):
    """
    Get the list of all the BroadWorks Anywhere phone numbers for the user.

    The response is either a ``UserBroadWorksAnywhereGetResponse()`` or an
    ``ErrorResponse()``. Replaced by: ``UserBroadWorksAnywhereGetRequest16sp2()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksAnywhereGetRequest16sp2(OCIRequest):
    """
    Get the list of all the BroadWorks Anywhere phone numbers for the user.

    The response is either a ``UserBroadWorksAnywhereGetResponse16sp2()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksAnywhereGetSelectiveCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's BroadWorks Anywhere phone number.

    The response is either a ``UserBroadWorksAnywhereGetSelectiveCriteriaResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksAnywhereGetSelectiveCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's BroadWorks Anywhere phone number.

    The response is either a ``UserBroadWorksAnywhereGetSelectiveCriteriaResponse16()`` or
    an ``ErrorResponse()``. Replaced by:
    ``UserBroadWorksAnywhereGetSelectiveCriteriaRequest21()``

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksAnywhereGetSelectiveCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's BroadWorks Anywhere phone number.

    The response is either a ``UserBroadWorksAnywhereGetSelectiveCriteriaResponse21()`` or
    an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksAnywhereModifyRequest(OCIRequest):
    """
    Request to modify the user-level settings for the BroadWorks Anywhere service for a
    specified user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        alert_all_locations_for_click_to_dial_calls: alertAllLocationsForClickToDialCalls
        alert_all_locations_for_group_paging_calls: alertAllLocationsForGroupPagingCalls
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "alert_all_locations_for_click_to_dial_calls",
            "alertAllLocationsForClickToDialCalls", bool,
        ),
        E(
            "alert_all_locations_for_group_paging_calls",
            "alertAllLocationsForGroupPagingCalls", bool,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    alert_all_locations_for_click_to_dial_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    alert_all_locations_for_group_paging_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )


class UserBroadWorksCommunicatorGetRequest(OCIRequest):
    """
    Request to get the Configuration Server for a specified user.

    The response is either a ``UserBroadWorksCommunicatorGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksMobilityGetRequest(OCIRequest):
    """
    Get the user's broadworks mobility service settings.

    The response is either a ``UserBroadWorksMobilityGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksMobilityGetRequest21(OCIRequest):
    """
    Get the user's BroadWorks Mobility service settings.

    The response is either a ``UserBroadWorksMobilityGetResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksMobilityMobileIdentityDeleteRequest(OCIRequest):
    """
    Delete a mobile identity from the user's list of mobile identities.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. When a
    delete request is attempted on the primary mobile identity, the delete will fail
    unless it is the last mobile identity in the user’s list.

    Attributes:
        user_id: userId
        mobile_number: mobileNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("mobile_number", "mobileNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    mobile_number: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksMobilityMobileIdentityGetRequest(OCIRequest):
    """
    Get the settings for a user's specified mobile identity.

    The response is either a ``UserBroadWorksMobilityMobileIdentityGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        mobile_number: mobileNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("mobile_number", "mobileNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    mobile_number: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksMobilityModifyRequest(OCIRequest):
    """
    Modify the user's broadworks mobility service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        phones_to_ring: phonesToRing
        mobile_phone_number: mobilePhoneNumber
        alert_click_to_dial_calls: alertClickToDialCalls
        alert_group_paging_calls: alertGroupPagingCalls
        enable_diversion_inhibitor: enableDiversionInhibitor
        require_answer_confirmation: requireAnswerConfirmation
        broadworks_call_control: broadworksCallControl
        use_setting_level: useSettingLevel
        deny_call_originations: denyCallOriginations
        deny_call_terminations: denyCallTerminations
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("phones_to_ring", "phonesToRing", str),
        E("mobile_phone_number", "mobilePhoneNumber", str),
        E("alert_click_to_dial_calls", "alertClickToDialCalls", bool),
        E("alert_group_paging_calls", "alertGroupPagingCalls", bool),
        E("enable_diversion_inhibitor", "enableDiversionInhibitor", bool),
        E("require_answer_confirmation", "requireAnswerConfirmation", bool),
        E("broadworks_call_control", "broadworksCallControl", bool),
        E("use_setting_level", "useSettingLevel", str),
        E("deny_call_originations", "denyCallOriginations", bool),
        E("deny_call_terminations", "denyCallTerminations", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    phones_to_ring: str = Field(type=str, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)
    alert_click_to_dial_calls: bool = Field(type=bool, required=False, mutable=False)
    alert_group_paging_calls: bool = Field(type=bool, required=False, mutable=False)
    enable_diversion_inhibitor: bool = Field(type=bool, required=False, mutable=False)
    require_answer_confirmation: bool = Field(type=bool, required=False, mutable=False)
    broadworks_call_control: bool = Field(type=bool, required=False, mutable=False)
    use_setting_level: str = Field(type=str, required=False, mutable=False)
    deny_call_originations: bool = Field(type=bool, required=False, mutable=False)
    deny_call_terminations: bool = Field(type=bool, required=False, mutable=False)


class UserBroadWorksMobilityModifyRequest20(OCIRequest):
    """
    Modify the user's broadworks mobility service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. If the
    request modifies the mobilePhoneNumber and the new number does not belong to the
    appropriate Mobile Subscriber Directory Numbers pool, the request is rejected.  For a
    service provider the number must belong to the group Mobile Subscriber Directory
    Numbers pool.  For an enterprise user, the number must belong to the enterprise Mobile
    Subscriber Directory Numbers pool.  If the request is executed by a user and modifies
    the mobilePhoneNumber, the request is rejected.

    Attributes:
        user_id: userId
        is_active: isActive
        phones_to_ring: phonesToRing
        mobile_phone_number: mobilePhoneNumber
        alert_click_to_dial_calls: alertClickToDialCalls
        alert_group_paging_calls: alertGroupPagingCalls
        enable_diversion_inhibitor: enableDiversionInhibitor
        require_answer_confirmation: requireAnswerConfirmation
        broadworks_call_control: broadworksCallControl
        use_setting_level: useSettingLevel
        deny_call_originations: denyCallOriginations
        deny_call_terminations: denyCallTerminations
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("phones_to_ring", "phonesToRing", str),
        E("mobile_phone_number", "mobilePhoneNumber", str),
        E("alert_click_to_dial_calls", "alertClickToDialCalls", bool),
        E("alert_group_paging_calls", "alertGroupPagingCalls", bool),
        E("enable_diversion_inhibitor", "enableDiversionInhibitor", bool),
        E("require_answer_confirmation", "requireAnswerConfirmation", bool),
        E("broadworks_call_control", "broadworksCallControl", bool),
        E("use_setting_level", "useSettingLevel", str),
        E("deny_call_originations", "denyCallOriginations", bool),
        E("deny_call_terminations", "denyCallTerminations", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    phones_to_ring: str = Field(type=str, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)
    alert_click_to_dial_calls: bool = Field(type=bool, required=False, mutable=False)
    alert_group_paging_calls: bool = Field(type=bool, required=False, mutable=False)
    enable_diversion_inhibitor: bool = Field(type=bool, required=False, mutable=False)
    require_answer_confirmation: bool = Field(type=bool, required=False, mutable=False)
    broadworks_call_control: bool = Field(type=bool, required=False, mutable=False)
    use_setting_level: str = Field(type=str, required=False, mutable=False)
    deny_call_originations: bool = Field(type=bool, required=False, mutable=False)
    deny_call_terminations: bool = Field(type=bool, required=False, mutable=False)


class UserBroadWorksReceptionistEnterpriseAddUserListRequest(OCIRequest):
    """
    Add users to the BroadWorks Receptionist - Enterprise monitored user list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        monitored_user_id: monitoredUserId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("monitored_user_id", "monitoredUserId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    monitored_user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksReceptionistEnterpriseDeleteUserListRequest(OCIRequest):
    """
    Remove selected users from the BroadWorks Receptionist - Enterprise monitored user
    list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        monitored_user_id: monitoredUserId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("monitored_user_id", "monitoredUserId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    monitored_user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksReceptionistEnterpriseGetRequest(OCIRequest):
    """
    Request the monitored users list for the BroadWorks Receptionist - Enterprise service.

    The response is either a ``UserBroadWorksReceptionistEnterpriseGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksReceptionistOfficeGetRequest(OCIRequest):
    """
    Request the Receptionist Office parameters.

    The response is either a ``UserBroadWorksReceptionistOfficeGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBroadWorksReceptionistSmallBusinessGetRequest(OCIRequest):
    """
    Request the Receptionist Small Business parameters.

    The response is either a ``UserBroadWorksReceptionistSmallBusinessGetResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBusyLampFieldGetRequest(OCIRequest):
    """
    Request the settings for the busy lamp field service.

    The response is either a ``UserBusyLampFieldGetResponse()`` or an ``ErrorResponse()``.
    Replaced by: ``UserBusyLampFieldGetRequest16sp2()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserBusyLampFieldGetRequest16sp2(OCIRequest):
    """
    Request the settings for the busy lamp field service.

    The response is either a ``UserBusyLampFieldGetResponse16sp2()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterAddSupervisedAgentListRequest(OCIRequest):
    """
    Assign agent(s) to a call center supervisor.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        supervisor_user_id: supervisorUserId
        service_user_id: serviceUserId
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    supervisor_user_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    agent_user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterAgentDetailsGetRequest(OCIRequest):
    """
    Request to get the detail information of a Call Center Agent.

    Administrator, supervisor and agent itself can send this command.

    The response is either ``UserCallCenterAgentDetailsGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    agent_user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterAgentSignOutRequest(OCIRequest):
    """
    This request signs-out a call center agent.

    Administrator, supervisor and agent itself can sign-out an agent.  An empty OCI table
    in OCI-P response indicates success and the agent has been signed out.  This sign-out
    command will fail if the agent is the last signed-in agent of any standard or premium
    call center to which she is currently joined.  If the sign-out fails, the OCI-P
    response will contain a list of Call Centers for which the agent is the last signed-in
    agent.  If this special logic is not needed, ``UserCallCenterModifyRequest19()`` can
    still be used to change the agents ACD state without checking if the agent is the last
    signed-in agent.

    The response is either a ``UserCallCenterAgentSignOutResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    agent_user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterCallDispositionCodeGetAvailableListRequest(OCIRequest):
    """
    Get the list of available Call Center Call Disposition Codes to be used by a client.

    The response is either ``UserCallCenterCallDispositionCodeGetAvailableListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterDeleteSupervisedAgentListRequest(OCIRequest):
    """
    Delete agent(s) from a call center supervisor.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        supervisor_user_id: supervisorUserId
        service_user_id: serviceUserId
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    supervisor_user_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    agent_user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterEnhancedReportingScheduledReportDeleteRequest(OCIRequest):
    """
    Request to delete a call center reporting scheduled report created by a supervisor.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        supervisor_user_id: supervisorUserId
        name: name
    """

    _ELEMENTS = (
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    supervisor_user_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class UserCallCenterEnhancedReportingScheduledReportGetRequest(OCIRequest):
    """
    Request to get a call center reporting scheduled report created by supervisor.

    The response is either a
    ``UserCallCenterEnhancedReportingScheduledReportGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        supervisor_user_id: supervisorUserId
        name: name
    """

    _ELEMENTS = (
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
        E("name", "name", str, is_required=True),
    )

    supervisor_user_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetAgentSupervisorListRequest(OCIRequest):
    """
    Get a list of supervisors for an agent on a given call center.

    The response is either a ``UserCallCenterGetAgentSupervisorListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        agent_user_id: agentUserId
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("agent_user_id", "agentUserId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    agent_user_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetAvailableCallCenterListRequest(OCIRequest):
    """
    This request gets a list of all call centers which the user can be assigned to as an
    agent.

    Some of the call centers may already have the user as an agent.  It is the clients
    responsibility to discard the call centers that the user is already an agent of.

    The response is either a ``UserCallCenterGetAvailableCallCenterListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetAvailableDNISListRequest(OCIRequest):
    """
    Request a list of available DNIS for agent to select.

    The response is either ``UserCallCenterGetAvailableDNISListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        agent_user_id: agentUserId
    """

    _ELEMENTS = (
        E("agent_user_id", "agentUserId", str, is_required=True),
    )

    agent_user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetListRequest(OCIRequest):
    """
    Get the list of call centers the specified user belongs to.

    The response is either a ``UserCallCenterGetListResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserCallCenterGetRequest()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetRequest(OCIRequest):
    """
    Get the user's ACD state and the list of call centers the specified user belongs to.

    The response is either a ``UserCallCenterGetResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserCallCenterGetRequest16()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetRequest16(OCIRequest):
    """
    Get the user's call center settings and the list of call centers the specified user
    belongs to.

    The response is either a ``UserCallCenterGetResponse16()`` or an ``ErrorResponse()``.
    Replaced by: ``UserCallCenterGetRequest17()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetRequest17(OCIRequest):
    """
    Get the user's call center settings and the list of call centers the specified user
    belongs to.

    The response is either a ``UserCallCenterGetResponse17()`` or an ``ErrorResponse()``.
    Replaced by ``UserCallCenterGetRequest17sp4()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetRequest17sp4(OCIRequest):
    """
    Get the user's call center settings and the list of call centers the specified user
    belongs to.

    The response is either a ``UserCallCenterGetResponse17sp4()`` or an
    ``ErrorResponse()``. Replaced by ``UserCallCenterGetRequest19()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetRequest19(OCIRequest):
    """
    Get the user's call center settings and the list of call centers the specified user
    belongs to.

    The response is either a ``UserCallCenterGetResponse19()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterGetSupervisorCallCenterListRequest(OCIRequest):
    """
    Get a list of call centers the user is assigned to as a supervisor.

    The response is either a ``UserCallCenterGetSupervisorCallCenterListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        supervisor_user_id: supervisorUserId
    """

    _ELEMENTS = (
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
    )

    supervisor_user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterMonitoringGetRequest(OCIRequest):
    """
    Request the user's Call Center Monitoring settings.

    The response is either a ``UserCallCenterMonitoringGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallCenterMonitoringModifyRequest(OCIRequest):
    """
    Modify the user's Call Center Monitoring settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        play_tone_to_agent_for_silent_monitoring: playToneToAgentForSilentMonitoring
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "play_tone_to_agent_for_silent_monitoring",
            "playToneToAgentForSilentMonitoring", bool,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    play_tone_to_agent_for_silent_monitoring: bool = Field(
        type=bool, required=False, mutable=False,
    )


class UserCallForwardingAlwaysGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Forwarding Always.

    The response is either a ``UserCallForwardingAlwaysGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallForwardingAlwaysModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Call Forwarding Always.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        is_active: isActive
        forward_to_phone_number: forwardToPhoneNumber
        is_ring_splash_active: isRingSplashActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("is_ring_splash_active", "isRingSplashActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    is_ring_splash_active: bool = Field(type=bool, required=False, mutable=False)


class UserCallForwardingBusyGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Forwarding Busy.

    The response is either a ``UserCallForwardingBusyGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallForwardingBusyModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Call Forwarding Busy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        is_active: isActive
        forward_to_phone_number: forwardToPhoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)


class UserCallForwardingNoAnswerGetRequest13mp16(OCIRequest):
    """
    Request the user level data associated with Call Forwarding No Answer.

    The response is either a ``UserCallForwardingNoAnswerGetResponse13mp16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallForwardingNoAnswerModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Call Forwarding No Answer.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        is_active: isActive
        forward_to_phone_number: forwardToPhoneNumber
        number_of_rings: numberOfRings
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("number_of_rings", "numberOfRings", int),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    number_of_rings: int = Field(type=int, required=False, mutable=False)


class UserCallForwardingNotReachableGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Forwarding Not Reachable.

    The response is either a ``UserCallForwardingNotReachableGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallForwardingNotReachableModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Call Forwarding Not Reachable.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        is_active: isActive
        forward_to_phone_number: forwardToPhoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)


class UserCallForwardingSelectiveDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's call forwarding selective service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallForwardingSelectiveGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's call forwarding selective service.

    The response is either a ``UserCallForwardingSelectiveGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallForwardingSelectiveGetCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's call forwarding selective service.

    The response is either a ``UserCallForwardingSelectiveGetCriteriaResponse16()`` or an
    ``ErrorResponse()``. Replaced by:
    ``UserCallForwardingSelectiveGetCriteriaRequest21()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallForwardingSelectiveGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's call forwarding selective service.

    The response is either a ``UserCallForwardingSelectiveGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallForwardingSelectiveGetRequest(OCIRequest):
    """
    Get the user's call forwarding selective service setting.

    The response is either a ``UserCallForwardingSelectiveGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallForwardingSelectiveGetRequest16(OCIRequest):
    """
    Get the user's call forwarding selective service setting.

    The response is either a ``UserCallForwardingSelectiveGetResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallLogsClearRequest(OCIRequest):
    """
    Clear a user's call logs associated with Basic Call Logs and Enhanced Call Logs
    features.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserCallLogsClearRequest14sp4()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallLogsClearRequest14sp4(OCIRequest):
    """
    Clear a user's call logs associated with Basic Call Logs and Enhanced Call Logs
    features.

    The calls logs are deleted from both Basic Call Logs and Enhanced Call Logs if both
    features are assigned.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        delete_all_call_logs: deleteAllCallLogs
        delete_specified_call_logs: deleteSpecifiedCallLogs
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("delete_all_call_logs", "deleteAllCallLogs", bool),
        E(
            "delete_specified_call_logs", "deleteSpecifiedCallLogs", str, is_complex=True,
        ),  # unknown
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    delete_all_call_logs: bool = Field(type=bool, required=False, mutable=False)
    delete_specified_call_logs: str = Field(type=str, required=False, mutable=False)


class UserCallMeNowDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's call me now service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallMeNowGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's call me now service.

    The response is either a ``UserCallMeNowGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallMeNowGetRequest(OCIRequest):
    """
    Get the user's call me now service setting.

    The response is either a ``UserCallMeNowGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallNotifyDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's call notify service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallNotifyGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's call notify service.

    The response is either a ``UserCallNotifyGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallNotifyGetCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's call notify service.

    The response is either a ``UserCallNotifyGetCriteriaResponse16()`` or an
    ``ErrorResponse()``. Replaced by: ``UserCallNotifyGetCriteriaRequest21()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallNotifyGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's call notify service.

    The response is either a ``UserCallNotifyGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCallNotifyGetRequest(OCIRequest):
    """
    Get the user's call notify service setting.

    The response is either a ``UserCallNotifyGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallParkGetRequest(OCIRequest):
    """
    Identifies which Call Park group the user belongs to if any and the list of users in
    the group.

    The response is either ``UserCallParkGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallPickupGetRequest(OCIRequest):
    """
    Gets the details of the Call Pickup group that a user belongs to (if any).

    Any user can only belong to one Call Pickup group.

    The response is either ``UserCallPickupGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallPoliciesGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Policies.

    The response is either a ``UserCallPoliciesGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallPoliciesGetRequest17(OCIRequest):
    """
    Request the user level data associated with Call Policies.

    The response is either a ``UserCallPoliciesGetResponse17()`` or an
    ``ErrorResponse()``. Replaced by: ``UserCallPoliciesGetRequest19sp1()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallPoliciesGetRequest19sp1(OCIRequest):
    """
    Request the user level data associated with Call Policies.

    The response is either a ``UserCallPoliciesGetResponse19sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallPoliciesModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Call Policies.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        redirected_calls_colp_privacy: redirectedCallsCOLPPrivacy
        call_being_forwarded_response_call_type: callBeingForwardedResponseCallType
        calling_line_identity_for_redirected_calls: callingLineIdentityForRedirectedCalls
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("redirected_calls_colp_privacy", "redirectedCallsCOLPPrivacy", str),
        E(
            "call_being_forwarded_response_call_type",
            "callBeingForwardedResponseCallType", str,
        ),
        E(
            "calling_line_identity_for_redirected_calls",
            "callingLineIdentityForRedirectedCalls", str,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    redirected_calls_colp_privacy: str = Field(type=str, required=False, mutable=False)
    call_being_forwarded_response_call_type: str = Field(
        type=str, required=False, mutable=False,
    )
    calling_line_identity_for_redirected_calls: str = Field(
        type=str, required=False, mutable=False,
    )


class UserCallProcessingGetPolicyRequest14(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse14()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingGetPolicyRequest14sp1(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse14sp1()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserCallProcessingGetPolicyRequest14sp7()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingGetPolicyRequest14sp7(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse14sp7()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingGetPolicyRequest16(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingGetPolicyRequest16sp2(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse16()`` or an
    ``ErrorResponse()``. Replaced by: ``UserCallProcessingGetPolicyRequest17sp4()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingGetPolicyRequest17(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingGetPolicyRequest17sp3(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse17sp3()`` or an
    ``ErrorResponse()``. Replaced by: UserCallProcessingGetPolicyRequest17Sp4

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingGetPolicyRequest17sp4(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse17sp4()`` or an
    ``ErrorResponse()``. Replaced by: ``UserCallProcessingGetPolicyRequest18()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingGetPolicyRequest18(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse18()`` or an
    ``ErrorResponse()``. Replaced by: ``UserCallProcessingGetPolicyRequest19sp1()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingGetPolicyRequest19sp1(OCIRequest):
    """
    Request the user level data associated with Call Processing Policy.

    The response is either a ``UserCallProcessingGetPolicyResponse19sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallProcessingModifyPolicyRequest14(OCIRequest):
    """
    Modify the user level data associated with Call Procesing Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserCallProcessingModifyPolicyRequest14sp7()``

    Attributes:
        user_id: userId
        use_user_setting: useUserSetting
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_user_setting", "useUserSetting", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_user_setting: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )


class UserCallProcessingModifyPolicyRequest14sp7(OCIRequest):
    """
    Modify the user level data associated with Call Procesing Policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    useUserCLIDSetting attribute controls the CLID settings (clidPolicy,
    emergencyClidPolicy, allowAlternateNumbersForRedirectingIdentity, useGroupName,
    allowConfigurableCLIDForRedirectingIdentity, allowDepartmentCLIDNameOverride) The
    useUserMediaSetting attribute controls the Media settings (medisPolicySelection,
    supportedMediaSetName) The useUserCallLimitsSetting attribute controls the Call Limits
    setting (useMaxSimultaneousCalls, maxSimultaneousCalls, useMaxSimultaneousVideoCalls,
    maxSimultaneousVideoCalls, useMaxCallTimeForAnsweredCalls,
    maxCallTimeForAnsweredCallsMinutes, useMaxCallTimeForUnansweredCalls,
    maxCallTimeForUnansweredCallsMinutes, useMaxConcurrentRedirectedCalls,
    useMaxFindMeFollowMeDepth, maxRedirectionDepth,
    useMaxConcurrentFindMeFollowMeInvocations, maxConcurrentFindMeFollowMeInvocations) The
    useUserDCLIDSetting controls the Dialable Caller ID settings (enableDialableCallerID)
    The following elements are only used in AS data mode: useUserDCLIDSetting
    enableDialableCallerID allowConfigurableCLIDForRedirectingIdentity
    allowDepartmentCLIDNameOverride

    Attributes:
        user_id: userId
        use_user_clid_setting: useUserCLIDSetting
        use_user_media_setting: useUserMediaSetting
        use_user_call_limits_setting: useUserCallLimitsSetting
        use_user_dclid_setting: useUserDCLIDSetting
        use_max_simultaneous_calls: useMaxSimultaneousCalls
        max_simultaneous_calls: maxSimultaneousCalls
        use_max_simultaneous_video_calls: useMaxSimultaneousVideoCalls
        max_simultaneous_video_calls: maxSimultaneousVideoCalls
        use_max_call_time_for_answered_calls: useMaxCallTimeForAnsweredCalls
        max_call_time_for_answered_calls_minutes: maxCallTimeForAnsweredCallsMinutes
        use_max_call_time_for_unanswered_calls: useMaxCallTimeForUnansweredCalls
        max_call_time_for_unanswered_calls_minutes: maxCallTimeForUnansweredCallsMinutes
        media_policy_selection: mediaPolicySelection
        supported_media_set_name: supportedMediaSetName
        use_max_concurrent_redirected_calls: useMaxConcurrentRedirectedCalls
        max_concurrent_redirected_calls: maxConcurrentRedirectedCalls
        use_max_find_me_follow_me_depth: useMaxFindMeFollowMeDepth
        max_find_me_follow_me_depth: maxFindMeFollowMeDepth
        max_redirection_depth: maxRedirectionDepth
        use_max_concurrent_find_me_follow_me_invocations:
            useMaxConcurrentFindMeFollowMeInvocations
        max_concurrent_find_me_follow_me_invocations:
            maxConcurrentFindMeFollowMeInvocations
        clid_policy: clidPolicy
        emergency_clid_policy: emergencyClidPolicy
        allow_alternate_numbers_for_redirecting_identity:
            allowAlternateNumbersForRedirectingIdentity
        use_group_name: useGroupName
        enable_dialable_caller_id: enableDialableCallerID
        block_calling_name_for_external_calls: blockCallingNameForExternalCalls
        allow_configurable_clid_for_redirecting_identity:
            allowConfigurableCLIDForRedirectingIdentity
        allow_department_clid_name_override: allowDepartmentCLIDNameOverride
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_user_clid_setting", "useUserCLIDSetting", bool),
        E("use_user_media_setting", "useUserMediaSetting", bool),
        E("use_user_call_limits_setting", "useUserCallLimitsSetting", bool),
        E("use_user_dclid_setting", "useUserDCLIDSetting", bool),
        E("use_max_simultaneous_calls", "useMaxSimultaneousCalls", bool),
        E("max_simultaneous_calls", "maxSimultaneousCalls", int),
        E("use_max_simultaneous_video_calls", "useMaxSimultaneousVideoCalls", bool),
        E("max_simultaneous_video_calls", "maxSimultaneousVideoCalls", int),
        E("use_max_call_time_for_answered_calls", "useMaxCallTimeForAnsweredCalls", bool),
        E(
            "max_call_time_for_answered_calls_minutes",
            "maxCallTimeForAnsweredCallsMinutes", int,
        ),
        E("use_max_call_time_for_unanswered_calls", "useMaxCallTimeForUnansweredCalls", bool),
        E(
            "max_call_time_for_unanswered_calls_minutes",
            "maxCallTimeForUnansweredCallsMinutes", int,
        ),
        E("media_policy_selection", "mediaPolicySelection", str),
        E("supported_media_set_name", "supportedMediaSetName", str),
        E("use_max_concurrent_redirected_calls", "useMaxConcurrentRedirectedCalls", bool),
        E("max_concurrent_redirected_calls", "maxConcurrentRedirectedCalls", int),
        E("use_max_find_me_follow_me_depth", "useMaxFindMeFollowMeDepth", bool),
        E("max_find_me_follow_me_depth", "maxFindMeFollowMeDepth", int),
        E("max_redirection_depth", "maxRedirectionDepth", int),
        E(
            "use_max_concurrent_find_me_follow_me_invocations",
            "useMaxConcurrentFindMeFollowMeInvocations", bool,
        ),
        E(
            "max_concurrent_find_me_follow_me_invocations",
            "maxConcurrentFindMeFollowMeInvocations", int,
        ),
        E("clid_policy", "clidPolicy", str),
        E("emergency_clid_policy", "emergencyClidPolicy", str),
        E(
            "allow_alternate_numbers_for_redirecting_identity",
            "allowAlternateNumbersForRedirectingIdentity", bool,
        ),
        E("use_group_name", "useGroupName", bool),
        E("enable_dialable_caller_id", "enableDialableCallerID", bool),
        E("block_calling_name_for_external_calls", "blockCallingNameForExternalCalls", bool),
        E(
            "allow_configurable_clid_for_redirecting_identity",
            "allowConfigurableCLIDForRedirectingIdentity", bool,
        ),
        E("allow_department_clid_name_override", "allowDepartmentCLIDNameOverride", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_user_clid_setting: bool = Field(type=bool, required=False, mutable=False)
    use_user_media_setting: bool = Field(type=bool, required=False, mutable=False)
    use_user_call_limits_setting: bool = Field(type=bool, required=False, mutable=False)
    use_user_dclid_setting: bool = Field(type=bool, required=False, mutable=False)
    use_max_simultaneous_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_calls: int = Field(type=int, required=False, mutable=False)
    use_max_simultaneous_video_calls: bool = Field(type=bool, required=False, mutable=False)
    max_simultaneous_video_calls: int = Field(type=int, required=False, mutable=False)
    use_max_call_time_for_answered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_answered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    use_max_call_time_for_unanswered_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_call_time_for_unanswered_calls_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    media_policy_selection: str = Field(type=str, required=False, mutable=False)
    supported_media_set_name: str = Field(type=str, required=False, mutable=False)
    use_max_concurrent_redirected_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_redirected_calls: int = Field(type=int, required=False, mutable=False)
    use_max_find_me_follow_me_depth: bool = Field(type=bool, required=False, mutable=False)
    max_find_me_follow_me_depth: int = Field(type=int, required=False, mutable=False)
    max_redirection_depth: int = Field(type=int, required=False, mutable=False)
    use_max_concurrent_find_me_follow_me_invocations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    max_concurrent_find_me_follow_me_invocations: int = Field(
        type=int, required=False, mutable=False,
    )
    clid_policy: str = Field(type=str, required=False, mutable=False)
    emergency_clid_policy: str = Field(type=str, required=False, mutable=False)
    allow_alternate_numbers_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_group_name: bool = Field(type=bool, required=False, mutable=False)
    enable_dialable_caller_id: bool = Field(type=bool, required=False, mutable=False)
    block_calling_name_for_external_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_configurable_clid_for_redirecting_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_department_clid_name_override: bool = Field(
        type=bool, required=False, mutable=False,
    )


class UserCallRecordingGetRequest(OCIRequest):
    """
    Get the Call Recording attributes for a user.

    The response is either a ``UserCallRecordingGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallRecordingGetRequest20(OCIRequest):
    """
    Get the Call Recording attributes for a user.

    The response is either a ``UserCallRecordingGetResponse20()`` or an
    ``ErrorResponse()``. The following parameters are not returned for service instance: -
    pauseResumeNotification - enableCallRecordingAnnouncement -
    enableRecordCallRepeatWarningTone - recordCallRepeatWarningToneTimerSeconds

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallRecordingModifyRequest(OCIRequest):
    """
    Modify the Call Recording attributes for a user.

    The recording options "Always with Pause/Resume", "On Demand", and "On Demand with
    User Initiated Start" are not accepted for service instances.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following parameters are not accepted for service instance: - pauseResumeNotification
    - enableCallRecordingAnnouncement - enableRecordCallRepeatWarningTone -
    recordCallRepeatWarningToneTimerSeconds The enableVoiceMailRecording parameter is only
    applicable if the Voice Messaging User service is assigned to the user.  This applies
    to both users and service instances.

    Attributes:
        user_id: userId
        recording_option: recordingOption
        pause_resume_notification: pauseResumeNotification
        enable_call_recording_announcement: enableCallRecordingAnnouncement
        enable_record_call_repeat_warning_tone: enableRecordCallRepeatWarningTone
        record_call_repeat_warning_tone_timer_seconds:
            recordCallRepeatWarningToneTimerSeconds
        enable_voice_mail_recording: enableVoiceMailRecording
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("recording_option", "recordingOption", str),
        E("pause_resume_notification", "pauseResumeNotification", str),
        E("enable_call_recording_announcement", "enableCallRecordingAnnouncement", bool),
        E(
            "enable_record_call_repeat_warning_tone", "enableRecordCallRepeatWarningTone",
            bool,
        ),
        E(
            "record_call_repeat_warning_tone_timer_seconds",
            "recordCallRepeatWarningToneTimerSeconds", int,
        ),
        E("enable_voice_mail_recording", "enableVoiceMailRecording", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    recording_option: str = Field(type=str, required=False, mutable=False)
    pause_resume_notification: str = Field(type=str, required=False, mutable=False)
    enable_call_recording_announcement: bool = Field(type=bool, required=False, mutable=False)
    enable_record_call_repeat_warning_tone: bool = Field(
        type=bool, required=False, mutable=False,
    )
    record_call_repeat_warning_tone_timer_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    enable_voice_mail_recording: bool = Field(type=bool, required=False, mutable=False)


class UserCallToNumberGetAvailableListRequest(OCIRequest):
    """
    Request to get the user available Call to Number List information.

    The response is either a ``UserCallToNumberGetAvailableListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallTransferGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Transfer.

    The response is either a ``UserCallTransferGetResponse()`` or an ``ErrorResponse()``.

    Replaced By: UserCallTransferGetRequest14Sp4

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallTransferGetRequest14sp4(OCIRequest):
    """
    Request the user level data associated with Call Transfer.

    The response is either a ``UserCallTransferGetResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallTransferModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Call Transfer.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_recall_active: isRecallActive
        recall_number_of_rings: recallNumberOfRings
        use_diversion_inhibitor_for_blind_transfer: useDiversionInhibitorForBlindTransfer
        use_diversion_inhibitor_for_consultative_calls:
            useDiversionInhibitorForConsultativeCalls
        enable_busy_camp_on: enableBusyCampOn
        busy_camp_on_seconds: busyCampOnSeconds
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_recall_active", "isRecallActive", bool),
        E("recall_number_of_rings", "recallNumberOfRings", int),
        E(
            "use_diversion_inhibitor_for_blind_transfer",
            "useDiversionInhibitorForBlindTransfer", bool,
        ),
        E(
            "use_diversion_inhibitor_for_consultative_calls",
            "useDiversionInhibitorForConsultativeCalls", bool,
        ),
        E("enable_busy_camp_on", "enableBusyCampOn", bool),
        E("busy_camp_on_seconds", "busyCampOnSeconds", int),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_recall_active: bool = Field(type=bool, required=False, mutable=False)
    recall_number_of_rings: int = Field(type=int, required=False, mutable=False)
    use_diversion_inhibitor_for_blind_transfer: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_diversion_inhibitor_for_consultative_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_busy_camp_on: bool = Field(type=bool, required=False, mutable=False)
    busy_camp_on_seconds: int = Field(type=int, required=False, mutable=False)


class UserCallWaitingGetRequest(OCIRequest):
    """
    Request the user level data associated with Call Waiting.

    The response is either a ``UserCallWaitingGetResponse()`` or an ``ErrorResponse()``.
    Replaced by: ``UserCallWaitingGetRequest17sp4()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallWaitingGetRequest17sp4(OCIRequest):
    """
    Request the user level data associated with Call Waiting.

    The response is either a ``UserCallWaitingGetResponse17sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallWaitingModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Call Waiting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: disableCallingLineIdDelivery

    Attributes:
        user_id: userId
        is_active: isActive
        disable_calling_line_id_delivery: disableCallingLineIdDelivery
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("disable_calling_line_id_delivery", "disableCallingLineIdDelivery", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    disable_calling_line_id_delivery: bool = Field(type=bool, required=False, mutable=False)


class UserCallingLineIDBlockingOverrideGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling Line ID Blocking Override.

    The response is either a ``UserCallingLineIDBlockingOverrideGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallingLineIDBlockingOverrideModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Line ID Blocking Override.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserCallingLineIDDeliveryBlockingGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling Line ID Delivery Blocking.

    The response is either a ``UserCallingLineIDDeliveryBlockingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallingLineIDDeliveryBlockingModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Line ID Delivery Blocking.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserCallingNameDeliveryGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling Name Delivery.

    The response is either a ``UserCallingNameDeliveryGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallingNameDeliveryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Name Delivery.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active_for_external_calls: isActiveForExternalCalls
        is_active_for_internal_calls: isActiveForInternalCalls
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active_for_external_calls", "isActiveForExternalCalls", bool),
        E("is_active_for_internal_calls", "isActiveForInternalCalls", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active_for_external_calls: bool = Field(type=bool, required=False, mutable=False)
    is_active_for_internal_calls: bool = Field(type=bool, required=False, mutable=False)


class UserCallingNameRetrievalGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling Name Retrieval.

    The response is either a ``UserCallingNameRetrievalGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallingNameRetrievalModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Name Retrieval.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserCallingNumberDeliveryGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling Name Delivery.

    The response is either a ``UserCallingNumberDeliveryGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallingNumberDeliveryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Number Delivery.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active_for_external_calls: isActiveForExternalCalls
        is_active_for_internal_calls: isActiveForInternalCalls
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active_for_external_calls", "isActiveForExternalCalls", bool),
        E("is_active_for_internal_calls", "isActiveForInternalCalls", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active_for_external_calls: bool = Field(type=bool, required=False, mutable=False)
    is_active_for_internal_calls: bool = Field(type=bool, required=False, mutable=False)


class UserCallingPartyCategoryGetRequest(OCIRequest):
    """
    Request the user level data associated with Calling Party Category.

    The response is either a ``UserCallingPartyCategoryGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallingPartyCategoryGetRequest16(OCIRequest):
    """
    Request the user level data associated with Calling Party Category.

    The response is either a ``UserCallingPartyCategoryGetResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCallingPartyCategoryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Calling Party Category.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        category: category
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("category", "category", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    category: str = Field(type=str, required=False, mutable=False)


class UserCallingPartyCategoryModifyRequest16(OCIRequest):
    """
    Modify the user level data associated with Calling Party Category.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        category: category
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("category", "category", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    category: str = Field(type=str, required=False, mutable=False)


class UserChargeNumberGetRequest(OCIRequest):
    """
    Request the user level data associated with Charge Number.

    The response is either a ``UserChargeNumberGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserChargeNumberGetRequest14sp9(OCIRequest):
    """
    Request the user level data associated with Charge Number.

    The response is either a ``UserChargeNumberGetResponse14sp9()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserChargeNumberModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Charge Number.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        use_charge_number_for_enhanced_translations:
            useChargeNumberForEnhancedTranslations
        send_charge_number_to_network: sendChargeNumberToNetwork
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str),
        E(
            "use_charge_number_for_enhanced_translations",
            "useChargeNumberForEnhancedTranslations", bool,
        ),
        E("send_charge_number_to_network", "sendChargeNumberToNetwork", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    use_charge_number_for_enhanced_translations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    send_charge_number_to_network: bool = Field(type=bool, required=False, mutable=False)


class UserClassmarkGetRequest(OCIRequest):
    """
    Request the Class Mark data associated with User.

    The response is either a ``UserClassmarkGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserClassmarkModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Class Mark.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        classmark: classmark
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("classmark", "classmark", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    classmark: str = Field(type=str, required=False, mutable=False)


class UserCollaborateBridgeGetRequest(OCIRequest):
    """
    Request the collaborate bridged assigned to the user.

    The user can only be assigned to one collaborate bridge at any given time.

    The response is either ``UserCollaborateBridgeGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCollaborateDeleteRoomRequest(OCIRequest):
    """
    Request to delete a collaborate room.

    The request only applies to project rooms and instant rooms.  The request fails when
    deleting a collaborate My Room.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        room_id: roomId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("room_id", "roomId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    room_id: str = Field(type=str, required=True, mutable=False)


class UserCollaborateInstantRoomAddRequest(OCIRequest):
    """
    Request to add collaborate instant room.

    The response is either a ``UserCollaborateInstantRoomAddResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        room_name: roomName
        use_room_id_as_room_name: useRoomIdAsRoomName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("room_name", "roomName", str),
        E("use_room_id_as_room_name", "useRoomIdAsRoomName", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    room_name: str = Field(type=str, required=False, mutable=False)
    use_room_id_as_room_name: bool = Field(type=bool, required=False, mutable=False)


class UserCollaborateInstantRoomGetRequest(OCIRequest):
    """
    Request the collaborate room settings for an instant room.

    The request fails when requesting collaborate room settings for My Room or project
    rooms.

    The response is either ``UserCollaboratInstantRoomGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        room_id: roomId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("room_id", "roomId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    room_id: str = Field(type=str, required=True, mutable=False)


class UserCollaborateInstantRoomParametersGetRequest(OCIRequest):
    """
    Request collaborate instant room settings.

    The response is either ``UserCollaborateInstantRoomParametersGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCollaborateInstantRoomParametersModifyRequest(OCIRequest):
    """
    Request to modify collaborate instant room settings.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        attendee_notification: attendeeNotification
        end_collaborate_room_session_on_owner_exit: endCollaborateRoomSessionOnOwnerExit
        owner_required: ownerRequired
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("attendee_notification", "attendeeNotification", str),
        E(
            "end_collaborate_room_session_on_owner_exit",
            "endCollaborateRoomSessionOnOwnerExit", bool,
        ),
        E("owner_required", "ownerRequired", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    attendee_notification: str = Field(type=str, required=False, mutable=False)
    end_collaborate_room_session_on_owner_exit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    owner_required: bool = Field(type=bool, required=False, mutable=False)


class UserCollaborateMyRoomGetRequest(OCIRequest):
    """
    Request collaborate room settings for MyRoom.

    The response is either ``UserCollaboratMyRoomGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCollaborateMyRoomModifyRequest(OCIRequest):
    """
    Request to modify collaborate room settings for MyRoom.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        room_name: roomName
        attendee_notification: attendeeNotification
        end_collaborate_room_session_on_owner_exit: endCollaborateRoomSessionOnOwnerExit
        owner_required: ownerRequired
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("room_name", "roomName", str),
        E("attendee_notification", "attendeeNotification", str),
        E(
            "end_collaborate_room_session_on_owner_exit",
            "endCollaborateRoomSessionOnOwnerExit", bool,
        ),
        E("owner_required", "ownerRequired", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    room_name: str = Field(type=str, required=False, mutable=False)
    attendee_notification: str = Field(type=str, required=False, mutable=False)
    end_collaborate_room_session_on_owner_exit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    owner_required: bool = Field(type=bool, required=False, mutable=False)


class UserCollaborateProjectRoomGetRequest(OCIRequest):
    """
    Request collaborate room settings for a project room.

    The request fails when requesting collaborate room settings for instant rooms or My
    Room.

    The response is either ``UserCollaboratProjectRoomGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        room_id: roomId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("room_id", "roomId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    room_id: str = Field(type=str, required=True, mutable=False)


class UserCollaborateRoomIDRegenerateRequest(OCIRequest):
    """
    Request to regenerate collaborate room id for MyRoom and project room.

    The request fails when requesting to regenerate room ID for an instant room.

    The response is either a ``UserCollaborateRoomIDRegenerateResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        room_id: roomId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("room_id", "roomId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    room_id: str = Field(type=str, required=True, mutable=False)


class UserCollaborateRoomListGetRequest(OCIRequest):
    """
    Request the list of collaborate room instances for this specific user.

    The response is either a ``UserCollaborateRoomListGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCommPilotCallManagerGetRequest(OCIRequest):
    """
    Request the user level data associated with CommPilot Call Manager.

    The response is either a ``UserCommPilotCallManagerGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCommPilotCallManagerModifyRequest(OCIRequest):
    """
    Modify the user level data associated with CommPilot Call Manager.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        launch_on_login: launchOnLogin
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("launch_on_login", "launchOnLogin", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    launch_on_login: bool = Field(type=bool, required=False, mutable=False)


class UserCommPilotExpressGetRequest(OCIRequest):
    """
    Get the user's commPilot express service setting.

    The response is either a ``UserCommPilotExpressGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCommPilotExpressSRGetRequest13mp16(OCIRequest):
    """
    Get the user's commPilot express SR service setting.

    The response is either a ``UserCommPilotExpressSRGetResponse13mp16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCommunicationBarringAuthorizationCodeDeleteListRequest(OCIRequest):
    """
    Delete a list of Communication Barring Authorization codes from a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        code: code
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class UserCommunicationBarringAuthorizationCodeGetListRequest(OCIRequest):
    """
    Get a list of Communication Barring Authorization Code for a user.

    The response is either a
    ``UserCommunicationBarringAuthorizationCodeGetListResponse()`` or an
    ``ErorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCommunicationBarringGetRequest(OCIRequest):
    """
    Gets the Communication Barring settings for a user.

    The response is either a ``UserCommunicationBarringGetResponse()`` or an
    ``ErrorResponse()``. This command only applies to groups in an Enterprise.  This
    command will fail for groups in a Service Provider.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCommunicationBarringModifyRequest(OCIRequest):
    """
    Modify the Communication Barring settings for a user.

    If useDefaultServiceProviderProfile is set to false, a profile name must be present.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. This command
    only applies to groups in an Enterprise.  This command will fail for groups in a
    Service Provider.

    Attributes:
        user_id: userId
        use_group_setting: useGroupSetting
        profile_name: profileName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_group_setting", "useGroupSetting", bool),
        E("profile_name", "profileName", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_group_setting: bool = Field(type=bool, required=False, mutable=False)
    profile_name: str = Field(type=str, required=False, mutable=False)


class UserCommunicationBarringUserControlGetRequest(OCIRequest):
    """
    Lists the Communication Barring profiles available to a user and indicates which
    profile if any is currently active for the user.

    .

    The response is either ``UserCommunicationBarringUserControlGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCommunicationBarringUserControlModifyRequest(OCIRequest):
    """
    Enabling a profile automatically disables the currently active profile.

    Also allows the passcode for the service to be modified and the lockout to be reset.
    Admins only need to populate the newPasscode field when changing the passcode.  Users
    must populate both the oldPasscode and new Passcode fields when changing the passcode.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        enable_profile: enableProfile
        old_passcode: oldPasscode
        new_passcode: newPasscode
        reset_lockout: resetLockout
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("enable_profile", "enableProfile", int),
        E("old_passcode", "oldPasscode", str),
        E("new_passcode", "newPasscode", str),
        E("reset_lockout", "resetLockout", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    enable_profile: int = Field(type=int, required=False, mutable=False)
    old_passcode: str = Field(type=str, required=False, mutable=False)
    new_passcode: str = Field(type=str, required=False, mutable=False)
    reset_lockout: bool = Field(type=bool, required=False, mutable=False)


class UserConnectedLineIdentificationRestrictionGetRequest(OCIRequest):
    """
    Request the user level data associated with Connected Line ID Restriction.

    The response is either a ``UserConnectedLineIdentificationRestrictionGetResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserConnectedLineIdentificationRestrictionModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Connected Line ID Restriction.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserCustomRingbackUserDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's custom ringback service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCustomRingbackUserGetCriteriaListRequest(OCIRequest):
    """
    Get the user's custom ringback service criteria listing.

    The response is either a ``UserCustomRingbackUserGetCriteriaListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserCustomRingbackUserGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's custom ringback service.

    The response is either a ``UserCustomRingbackUserGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: UserCustomRingbackUserGetCriteriaRequest15Sp2

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCustomRingbackUserGetCriteriaRequest15sp2(OCIRequest):
    """
    Get a criteria for the user's custom ringback service.

    The response is either a ``UserCustomRingbackUserGetCriteriaResponse15sp2()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserCustomRingbackUserGetCriteriaRequest16()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCustomRingbackUserGetCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's custom ringback service.

    The response is either a ``UserCustomRingbackUserGetCriteriaResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCustomRingbackUserGetCriteriaRequest20(OCIRequest):
    """
    Get a criteria for the user's custom ringback service.

    The response is either a ``UserCustomRingbackUserGetCriteriaResponse20()`` or an
    ``ErrorResponse()``. Replaced by: ``UserCustomRingbackUserGetCriteriaRequest21()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserCustomRingbackUserGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's custom ringback service.

    The response is either a ``UserCustomRingbackUserGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserDeleteRequest(OCIRequest):
    """
    Request to delete a user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDevicePoliciesGetRequest(OCIRequest):
    """
    Request the user level data associated with Device Policy.

    The response is either a ``UserDevicePoliciesGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDevicePoliciesGetRequest19sp1(OCIRequest):
    """
    Request the user level data associated with Device Policy.

    The response is either a ``UserDevicePoliciesGetResponse19sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDevicePoliciesGetRequest20(OCIRequest):
    """
    Request the user level data associated with Device Policy.

    The response is either a ``UserDevicePoliciesGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDevicePoliciesGetRequest21(OCIRequest):
    """
    Request the user level data associated with Device Policy.

    The response is either a ``UserDevicePoliciesGetResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDevicePoliciesModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Device Policy.

    enableDeviceFeatureSynchronization can be configured regardless of lineMode, but is
    ignored by the application server in Multiple User Shared mode.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        line_mode: lineMode
        enable_device_feature_synchronization: enableDeviceFeatureSynchronization
        enable_dnd: enableDnd
        enable_call_forwarding_always: enableCallForwardingAlways
        enable_call_forwarding_busy: enableCallForwardingBusy
        enable_call_forwarding_no_answer: enableCallForwardingNoAnswer
        enable_acd: enableAcd
        enable_executive: enableExecutive
        enable_executive_assistant: enableExecutiveAssistant
        enable_security_classification: enableSecurityClassification
        enable_call_recording: enableCallRecording
        enable_call_decline: enableCallDecline
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("line_mode", "lineMode", str),
        E(
            "enable_device_feature_synchronization", "enableDeviceFeatureSynchronization",
            bool,
        ),
        E("enable_dnd", "enableDnd", bool),
        E("enable_call_forwarding_always", "enableCallForwardingAlways", bool),
        E("enable_call_forwarding_busy", "enableCallForwardingBusy", bool),
        E("enable_call_forwarding_no_answer", "enableCallForwardingNoAnswer", bool),
        E("enable_acd", "enableAcd", bool),
        E("enable_executive", "enableExecutive", bool),
        E("enable_executive_assistant", "enableExecutiveAssistant", bool),
        E("enable_security_classification", "enableSecurityClassification", bool),
        E("enable_call_recording", "enableCallRecording", bool),
        E("enable_call_decline", "enableCallDecline", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    line_mode: str = Field(type=str, required=False, mutable=False)
    enable_device_feature_synchronization: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_dnd: bool = Field(type=bool, required=False, mutable=False)
    enable_call_forwarding_always: bool = Field(type=bool, required=False, mutable=False)
    enable_call_forwarding_busy: bool = Field(type=bool, required=False, mutable=False)
    enable_call_forwarding_no_answer: bool = Field(type=bool, required=False, mutable=False)
    enable_acd: bool = Field(type=bool, required=False, mutable=False)
    enable_executive: bool = Field(type=bool, required=False, mutable=False)
    enable_executive_assistant: bool = Field(type=bool, required=False, mutable=False)
    enable_security_classification: bool = Field(type=bool, required=False, mutable=False)
    enable_call_recording: bool = Field(type=bool, required=False, mutable=False)
    enable_call_decline: bool = Field(type=bool, required=False, mutable=False)


class UserDirectedCallPickupWithBargeInGetRequest(OCIRequest):
    """
    Request the user level data associated with Directed Call Pickup With Barge In.

    The response is either a ``UserDirectedCallPickupWithBargeInGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDirectedCallPickupWithBargeInGetRequest14sp7(OCIRequest):
    """
    Request the user level data associated with Directed Call Pickup With Barge In.

    The response is either a ``UserDirectedCallPickupWithBargeInGetResponse14sp7()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDirectedCallPickupWithBargeInModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Directed Call Pickup With Barge In.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        enable_barge_in_warning_tone: enableBargeInWarningTone
        enable_automatic_target_selection: enableAutomaticTargetSelection
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("enable_barge_in_warning_tone", "enableBargeInWarningTone", bool),
        E("enable_automatic_target_selection", "enableAutomaticTargetSelection", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    enable_barge_in_warning_tone: bool = Field(type=bool, required=False, mutable=False)
    enable_automatic_target_selection: bool = Field(type=bool, required=False, mutable=False)


class UserDnGetActivationListRequest(OCIRequest):
    """
    Request to get a list of DNs associated with a user and their activation state.

    The response is either ``UserDnGetActivationListResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDoNotDisturbGetRequest(OCIRequest):
    """
    Request the user level data associated with Do Not Disturb.

    The response is either a ``UserDoNotDisturbGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDoNotDisturbModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Do Not Disturb.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        is_active: isActive
        ring_splash: ringSplash
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("ring_splash", "ringSplash", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    ring_splash: bool = Field(type=bool, required=False, mutable=False)


class UserDualModeVCCGetRequest(OCIRequest):
    """
    Request to get the user level Dual Mode VCC service attributes Response is either
    ``UserDualModeVCCGetResponse()`` or ``ErrorResponse()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserDualModeVCCModifyRequest(OCIRequest):
    """
    Request to modify the user level IN Integration service attributes Response is either
    ``UserINIntegrationGetResponse()`` or ``ErrorResponse()``

    Attributes:
        user_id: userId
        subscriber_user_name: subscriberUserName
        subscriber_password: subscriberPassword
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("subscriber_user_name", "subscriberUserName", str),
        E("subscriber_password", "subscriberPassword", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    subscriber_user_name: str = Field(type=str, required=False, mutable=False)
    subscriber_password: str = Field(type=str, required=False, mutable=False)


class UserEnhancedCallLogsGetListRequest(OCIRequest):
    """
    Request user's call logs.

    It is possible to get a subset of the total list of calls by specifying a starting
    offset and the number of calls to get.  If the callLogType is not specified, all types
    of calls are returned.

    The response is either a ``UserEnhancedCallLogsGetListResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserEnhancedCallLogsGetListRequest14sp4()``

    Attributes:
        user_id: userId
        call_log_type: callLogType
        starting_offset: startingOffset
        num_calls: numCalls
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("starting_offset", "startingOffset", int, is_required=True),
        E("num_calls", "numCalls", int, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    starting_offset: int = Field(type=int, required=True, mutable=False)
    num_calls: int = Field(type=int, required=True, mutable=False)


class UserEnhancedCallLogsGetListRequest14sp4(OCIRequest):
    """
    Request user's call logs.

    It is possible to get a subset of the total list of calls by specifying a starting
    offset and the number of calls to get.  If the callLogType is not specified, all types
    of calls are returned.

    The response is either a ``UserEnhancedCallLogsGetListResponse14sp4()`` or an
    ``ErrorResponse()``. Replaced by: ``UserEnhancedCallLogsGetListRequest16()``

    Attributes:
        user_id: userId
        call_log_type: callLogType
        starting_offset: startingOffset
        num_calls: numCalls
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("starting_offset", "startingOffset", int, is_required=True),
        E("num_calls", "numCalls", int, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    starting_offset: int = Field(type=int, required=True, mutable=False)
    num_calls: int = Field(type=int, required=True, mutable=False)


class UserExecutiveAssistantGetRequest(OCIRequest):
    """
    Get the setting of an executive assistant.

    The response is either ``UserExecutiveAssistantGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserExecutiveDeleteFilteringSelectiveCriteriaRequest(OCIRequest):
    """
    Delete a filtering criteria from an executive user.

    Both executive and the executive assistant can run this command.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserExecutiveGetAssistantRequest(OCIRequest):
    """
    Get the assistant setting and the list of assistants assigned to an executive.

    The response is either ``UserExecutiveGetAssistantsResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserExecutiveGetFilteringRequest(OCIRequest):
    """
    Get the filtering setting and the list of filtering criteria defined for an executive
    user.

    Both executive and the executive assistant can run this command.

    The response is either ``UserExecutiveGetFilteringResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserExecutiveGetFilteringSelectiveCriteriaRequest(OCIRequest):
    """
    Get a filtering criteria for an executive user.

    Both executive and the executive assistant can run this command.

    The response is either ``UserExecutiveGetSelectiveCriteriaResponse()`` or
    ``ErrorResponse()``. Replaced by:
    ``UserExecutiveGetFilteringSelectiveCriteriaRequest21()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserExecutiveGetFilteringSelectiveCriteriaRequest21(OCIRequest):
    """
    Get a filtering criteria for an executive user.

    Both executive and the executive assistant can run this command.

    The response is either ``UserExecutiveGetSelectiveCriteriaResponse21()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserExecutiveGetScreeningAlertingRequest(OCIRequest):
    """
    Get the screening and alerting setting of an executive.

    Both executive and the executive assistant can run this command.

    The response is either ``UserExecutiveGetScreeningAlertingResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserExecutiveModifyScreeningAlertingRequest(OCIRequest):
    """
    Modify the screening and alerting setting of an executive.

    Both executive and the executive assistant can run this command.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        enable_screening: enableScreening
        screening_alert_type: screeningAlertType
        alert_broad_works_mobility_location: alertBroadWorksMobilityLocation
        alert_broad_works_anywhere_locations: alertBroadWorksAnywhereLocations
        alert_shared_call_appearance_locations: alertSharedCallAppearanceLocations
        alerting_mode: alertingMode
        alerting_calling_line_id_name_mode: alertingCallingLineIdNameMode
        alerting_custom_calling_line_id_name: alertingCustomCallingLineIdName
        unicode_alerting_custom_calling_line_id_name:
            unicodeAlertingCustomCallingLineIdName
        alerting_calling_line_id_phone_number_mode: alertingCallingLineIdPhoneNumberMode
        alerting_custom_calling_line_id_phone_number:
            alertingCustomCallingLineIdPhoneNumber
        call_push_recall_number_of_rings: callPushRecallNumberOfRings
        next_assistant_number_of_rings: nextAssistantNumberOfRings
        enable_rollover: enableRollover
        rollover_wait_time_seconds: rolloverWaitTimeSeconds
        rollover_action: rolloverAction
        rollover_forward_to_phone_number: rolloverForwardToPhoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("enable_screening", "enableScreening", bool),
        E("screening_alert_type", "screeningAlertType", str),
        E("alert_broad_works_mobility_location", "alertBroadWorksMobilityLocation", bool),
        E("alert_broad_works_anywhere_locations", "alertBroadWorksAnywhereLocations", bool),
        E(
            "alert_shared_call_appearance_locations",
            "alertSharedCallAppearanceLocations", bool,
        ),
        E("alerting_mode", "alertingMode", str),
        E("alerting_calling_line_id_name_mode", "alertingCallingLineIdNameMode", str),
        E("alerting_custom_calling_line_id_name", "alertingCustomCallingLineIdName", str),
        E(
            "unicode_alerting_custom_calling_line_id_name",
            "unicodeAlertingCustomCallingLineIdName", str,
        ),
        E(
            "alerting_calling_line_id_phone_number_mode",
            "alertingCallingLineIdPhoneNumberMode", str,
        ),
        E(
            "alerting_custom_calling_line_id_phone_number",
            "alertingCustomCallingLineIdPhoneNumber", str,
        ),
        E("call_push_recall_number_of_rings", "callPushRecallNumberOfRings", int),
        E("next_assistant_number_of_rings", "nextAssistantNumberOfRings", int),
        E("enable_rollover", "enableRollover", bool),
        E("rollover_wait_time_seconds", "rolloverWaitTimeSeconds", int),
        E("rollover_action", "rolloverAction", str),
        E("rollover_forward_to_phone_number", "rolloverForwardToPhoneNumber", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    enable_screening: bool = Field(type=bool, required=False, mutable=False)
    screening_alert_type: str = Field(type=str, required=False, mutable=False)
    alert_broad_works_mobility_location: bool = Field(
        type=bool, required=False, mutable=False,
    )
    alert_broad_works_anywhere_locations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    alert_shared_call_appearance_locations: bool = Field(
        type=bool, required=False, mutable=False,
    )
    alerting_mode: str = Field(type=str, required=False, mutable=False)
    alerting_calling_line_id_name_mode: str = Field(type=str, required=False, mutable=False)
    alerting_custom_calling_line_id_name: str = Field(type=str, required=False, mutable=False)
    unicode_alerting_custom_calling_line_id_name: str = Field(
        type=str, required=False, mutable=False,
    )
    alerting_calling_line_id_phone_number_mode: str = Field(
        type=str, required=False, mutable=False,
    )
    alerting_custom_calling_line_id_phone_number: str = Field(
        type=str, required=False, mutable=False,
    )
    call_push_recall_number_of_rings: int = Field(type=int, required=False, mutable=False)
    next_assistant_number_of_rings: int = Field(type=int, required=False, mutable=False)
    enable_rollover: bool = Field(type=bool, required=False, mutable=False)
    rollover_wait_time_seconds: int = Field(type=int, required=False, mutable=False)
    rollover_action: str = Field(type=str, required=False, mutable=False)
    rollover_forward_to_phone_number: str = Field(type=str, required=False, mutable=False)


class UserExternalCallingLineIDDeliveryGetRequest(OCIRequest):
    """
    Request the user level data associated with External Calling Line ID Delivery.

    The response is either a ``UserExternalCallingLineIDDeliveryGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserExternalCallingLineIDDeliveryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with External Calling Line ID Delivery.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserExternalCustomRingbackGetRequest(OCIRequest):
    """
    Request the user level data associated with External Custom Ringback.

    The response is either a ``UserExternalCustomRingbackGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserExternalCustomRingbackModifyRequest(OCIRequest):
    """
    Modify the user level data associated with External Custom Ringback.

    The user SIP URI, when selected, it replaces the SP address, port and prefix.  The
    user SIP URI, if selected, is the Request URI of the SIP INVITE sent to the external
    server.  When the service provider data is used instead, the Request URI is
    constructed using the prefix, address, port and the user DN. The timeout value is the
    only SP configuration used when the user SIP URI is selected.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        use_setting_level: useSettingLevel
        sip_request_uri: sipRequestURI
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("use_setting_level", "useSettingLevel", str),
        E("sip_request_uri", "sipRequestURI", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    use_setting_level: str = Field(type=str, required=False, mutable=False)
    sip_request_uri: str = Field(type=str, required=False, mutable=False)


class UserFaxMessagingGetRequest(OCIRequest):
    """
    Request the user level data associated with Fax Messaging.

    The response is either a ``UserFaxMessagingGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserFaxMessagingGetRequest17(OCIRequest):
    """
    Request the user level data associated with Fax Messaging.

    The response is either a ``UserFaxMessagingGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserFaxMessagingGetRequest17sp1(OCIRequest):
    """
    Request the user level data associated with Fax Messaging.

    The response is either a ``UserFaxMessagingGetResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserFeatureAccessCodeGetListRequest(OCIRequest):
    """
    Get the list of feature access codes for a user.

    The response is either a ``UserFeatureAccessCodeGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserFeatureAccessCodeGetListRequest20(OCIRequest):
    """
    Get the list of feature access codes for a user.

    The response is either a ``UserFeatureAccessCodeGetListResponse20()`` or an
    ``ErrorResponse()``. In release 20 the "Call Recording" FAC name is changed to "Call
    Recording Start". Replaced by: ``UserFeatureAccessCodeGetListRequest21()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserFeatureAccessCodeGetListRequest21(OCIRequest):
    """
    Get the list of feature access codes for a user.

    The response is either a ``UserFeatureAccessCodeGetListResponse20()`` or an
    ``ErrorResponse()``. In release 20 the "Call Recording" FAC name is changed to "Call
    Recording Start".

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserFlexibleSeatingGuestGetRequest(OCIRequest):
    """
    Request the user level data associated with flexible seating guest.

    The response is either a ``UserFlexibleSeatingGuestGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetLoginInfoRequest(OCIRequest):
    """
    ``UserGetLoginInfoRequest()`` is used to access login information for a user either by
    a userId or dn.

    The phone number may be any DN associated with a user.

    The response is a ``UserGetLoginInfoResponse()`` or an ``ErrorResponse()``

    Attributes:
        user_id: userId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str),
        E("phone_number", "phoneNumber", str),
    )

    user_id: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)


class UserGetRegistrationListRequest(OCIRequest):
    """
    Request to get a list of registrations for a user.

    The response is either a ``UserGetRegistrationListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest14(OCIRequest):
    """
    Request to get the user information.

    The response is either ``UserGetResponse14()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest14sp4(OCIRequest):
    """
    Request to get the user information.

    The response is either ``UserGetResponse14sp4()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest14sp9(OCIRequest):
    """
    Request to get the user information.

    The response is either ``UserGetResponse14sp4()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest15sp2(OCIRequest):
    """
    Request to get the user information.

    The response is either ``UserGetResponse15sp2()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest17(OCIRequest):
    """
    Replaced By ``UserGetRequest17sp4()`` Request to get the user information.

    The response is either ``UserGetResponse17()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest17sp3(OCIRequest):
    """
    Replaced By ``UserGetRequest18()`` Request to get the user information.

    The response is either ``UserGetResponse17sp3()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest17sp4(OCIRequest):
    """
    Replaced By ``UserGetRequest18()`` Request to get the user information.

    The response is either ``UserGetResponse17sp4()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest18(OCIRequest):
    """
    Request to get the user information.

    The response is either ``UserGetResponse18()`` or ``ErrorResponse()``. Replaced by:
    ``UserGetRequest19()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest19(OCIRequest):
    """
    Request to get the user information.

    The response is either ``UserGetResponse19()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest20(OCIRequest):
    """
    Request to get the user information.

    The response is either ``UserGetResponse20()`` or ``ErrorResponse()``. Replaced by:
    ``UserGetRequest21()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGetRequest21(OCIRequest):
    """
    Request to get the user information.

    The response is either ``UserGetResponse21()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGroupNightForwardingGetRequest(OCIRequest):
    """
    Request to get the Group Night Forwarding user parameters.

    The response is either ``UserGroupNightForwardingGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserGroupNightForwardingModifyRequest(OCIRequest):
    """
    Request to modify the Group Night Forwarding user parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        night_forwarding: nightForwarding
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("night_forwarding", "nightForwarding", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    night_forwarding: str = Field(type=str, required=False, mutable=False)


class UserGroupPagingGetListRequest(OCIRequest):
    """
    Get the list of all the Paging Groups a user was assigned as an originator.

    The response is either a ``UserGroupPagingGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserHolidayScheduleDeleteRequest(OCIRequest):
    """
    Delete a holiday schedule from a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        holiday_schedule_name: holidayScheduleName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)


class UserHolidayScheduleGetListRequest(OCIRequest):
    """
    Get a holiday schedule list for a user.

    The response is either a ``UserHolidayScheduleGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserHolidayScheduleGetRequest(OCIRequest):
    """
    Get a holiday schedule a user.

    The response is either a ``UserHolidayScheduleGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        holiday_schedule_name: holidayScheduleName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)


class UserHotelingGuestGetRequest14(OCIRequest):
    """
    Request the user level data associated with Hoteling Guest.

    The response is either a ``UserHotelingGuestGetResponse14()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserHotelingGuestGetRequest14sp2(OCIRequest):
    """
    Request the user level data associated with Hoteling Guest.

    The response is either a ``UserHotelingGuestGetResponse14()`` or an
    ``ErrorResponse()``. Replaced by: ``UserHotelingGuestGetRequest14sp4()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserHotelingGuestGetRequest14sp4(OCIRequest):
    """
    Request the user level data associated with Hoteling Guest.

    The response is either a ``UserHotelingGuestGetResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserHotelingGuestModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Hoteling Guest.

    There is no provisioning error will be given when setting hostUserId to not nil value
    while Hoteling Guest feature is not active.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``UserHotelingGuestModifyRequest21()``

    Attributes:
        user_id: userId
        is_active: isActive
        enable_association_limit: enableAssociationLimit
        association_limit_hours: associationLimitHours
        host_user_id: hostUserId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("enable_association_limit", "enableAssociationLimit", bool),
        E("association_limit_hours", "associationLimitHours", int),
        E("host_user_id", "hostUserId", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    enable_association_limit: bool = Field(type=bool, required=False, mutable=False)
    association_limit_hours: int = Field(type=int, required=False, mutable=False)
    host_user_id: str = Field(type=str, required=False, mutable=False)


class UserHotelingGuestModifyRequest21(OCIRequest):
    """
    Modify the user level data associated with Hoteling Guest.

    Provisioning error will be given when setting hostUserId to not nil value while
    Hoteling Guest feature is not active.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        enable_association_limit: enableAssociationLimit
        association_limit_hours: associationLimitHours
        host_user_id: hostUserId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("enable_association_limit", "enableAssociationLimit", bool),
        E("association_limit_hours", "associationLimitHours", int),
        E("host_user_id", "hostUserId", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    enable_association_limit: bool = Field(type=bool, required=False, mutable=False)
    association_limit_hours: int = Field(type=int, required=False, mutable=False)
    host_user_id: str = Field(type=str, required=False, mutable=False)


class UserHotelingHostGetRequest14(OCIRequest):
    """
    Request the user level data associated with Hoteling Host.

    The response is either a ``UserHotelingHostGetResponse14()`` or an
    ``ErrorResponse()``. Replaced by: ``UserHotelingHostGetRequest14sp4()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserHotelingHostGetRequest14sp4(OCIRequest):
    """
    Request the user level data associated with Hoteling Host.

    The response is either a ``UserHotelingHostGetResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserHotelingHostGetRequest17(OCIRequest):
    """
    Request the user level data associated with Hoteling Host.

    The response is either a ``UserHotelingHostGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserHotelingHostModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Hoteling Host.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        enforce_association_limit: enforceAssociationLimit
        association_limit_hours: associationLimitHours
        access_level: accessLevel
        remove_guest_association: removeGuestAssociation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("enforce_association_limit", "enforceAssociationLimit", bool),
        E("association_limit_hours", "associationLimitHours", int),
        E("access_level", "accessLevel", str),
        E("remove_guest_association", "removeGuestAssociation", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    enforce_association_limit: bool = Field(type=bool, required=False, mutable=False)
    association_limit_hours: int = Field(type=int, required=False, mutable=False)
    access_level: str = Field(type=str, required=False, mutable=False)
    remove_guest_association: bool = Field(type=bool, required=False, mutable=False)


class UserINIntegrationGetRequest(OCIRequest):
    """
    Request to get the user level IN Integration service attributes Response is either
    ``UserINIntegrationGetResponse()`` or ``ErrorResponse()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserINIntegrationModifyRequest(OCIRequest):
    """
    Request to modify the user level IN Integration service attributes Response is either
    ``SuccessResponse()`` or ``ErrorResponse()``

    Attributes:
        user_id: userId
        originating_service_key: originatingServiceKey
        terminating_service_key: terminatingServiceKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("originating_service_key", "originatingServiceKey", int),
        E("terminating_service_key", "terminatingServiceKey", int),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    originating_service_key: int = Field(type=int, required=False, mutable=False)
    terminating_service_key: int = Field(type=int, required=False, mutable=False)


class UserInCallServiceActivationGetRequest(OCIRequest):
    """
    Request the user level data associated with In-Call Service Activation.

    The response is either a ``UserInCallServiceActivationGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserInCallServiceActivationModifyRequest(OCIRequest):
    """
    Modify the user level data associated with In-Call Service Activation.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserIncomingCallingPlanGetRequest(OCIRequest):
    """
    Request the user's incoming calling plan settings.

    The response is either a ``UserIncomingCallingPlanGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserIntegratedIMPGeneratePasswordRequest(OCIRequest):
    """
    Generate a new IMP password for the user.

    The new generated password is synchronized to the service Messaging Server.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserIntegratedIMPGetRequest(OCIRequest):
    """
    Get the Integrated IMP specific service attribute for the user.

    The response is either ``UserIMPGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserIntegratedIMPModifyRequest(OCIRequest):
    """
    Modifies the Integrated IMP specific service attribute for the user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserIntelligentNetworkServiceControlGetRequest(OCIRequest):
    """
    Request the user level data associated with Intelligent Network Service Control.

    The response is either a ``UserIntelligentNetworkServiceControlGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserIntelligentNetworkServiceControlModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Intelligent Network Service Control.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        pre_answer_actions_enabled: preAnswerActionsEnabled
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("pre_answer_actions_enabled", "preAnswerActionsEnabled", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    pre_answer_actions_enabled: bool = Field(type=bool, required=False, mutable=False)


class UserInterceptUserGetRequest(OCIRequest):
    """
    Get the user's intercept user service settings.

    The response is either a ``UserInterceptUserGetResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserInterceptUserGetRequest16()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserInterceptUserGetRequest16(OCIRequest):
    """
    Get the user's intercept user service settings.

    The response is either a ``UserInterceptUserGetResponse16()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserInterceptUserGetRequest16sp1()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserInterceptUserGetRequest16sp1(OCIRequest):
    """
    Get the user's intercept user service settings.

    The response is either a ``UserInterceptUserGetResponse16sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserInternalCallingLineIDDeliveryGetRequest(OCIRequest):
    """
    Request the user level data associated with Internal Calling Line ID Delivery.

    The response is either a ``UserInternalCallingLineIDDeliveryGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserInternalCallingLineIDDeliveryModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Internal Calling Line ID Delivery.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserLDAPIntegrationGetDirectoryEntryRequest(OCIRequest):
    """
    Request one LDAP entry for a user.

    The response is either a ``UserLDAPIntegrationGetDirectoryEntryResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        entry_name: entryName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("entry_name", "entryName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    entry_name: str = Field(type=str, required=True, mutable=False)


class UserLegacyAutomaticCallbackGetRequest(OCIRequest):
    """
    Request the user level data associated with Legacy Automatic Callback.

    The response is either a ``UserLegacyAutomaticCallbackGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserLegacyAutomaticCallbackModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Legacy Automatic Callback.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserLinePortGetListRequest(OCIRequest):
    """
    Request to get all user's configured line ports.


    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserMWIDeliveryToMobileEndpointGetRequest(OCIRequest):
    """
    Request the user level data associated with MWI Delivery to Mobile Endpoint service.

    The response is either a ``UserMWIDeliveryToMobileEndpointGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserMWIDeliveryToMobileEndpointModifyRequest(OCIRequest):
    """
    Request to modify the user level data associated with MWI Delivery to Mobile Endpoint
    service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        mobile_phone_number: mobilePhoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("mobile_phone_number", "mobilePhoneNumber", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)


class UserMaliciousCallTraceGetRequest(OCIRequest):
    """
    Request the user level data associated with Malicious Call Trace.

    The response is either a ``UserMaliciousCallTraceGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserMeetMeConferencingGetBridgeListRequest(OCIRequest):
    """
    Get the list of Meet-Me Conferencing bridges for which the user is a host.

    The response is either ``UserMeetMeConferencingGetBridgeListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserMeetMeConferencingGetConferenceListRequest(OCIRequest):
    """
    Get the list of all conferences for which user is a host or a delegate.

    The response is either ``UserMeetMeConferencingGetConferenceListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        bridge_id: bridgeId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("bridge_id", "bridgeId", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    bridge_id: str = Field(type=str, required=False, mutable=False)


class UserMeetMeConferencingGetConferenceRecordingListRequest(OCIRequest):
    """
    Get the list of recordings of the conferences owned by the host.

    The response is either ``UserMeetMeConferencingGetConferenceRecordingListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserModifyUserIdRequest(OCIRequest):
    """
    Modify the user id of a real or virtual user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        new_user_id: newUserId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("new_user_id", "newUserId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    new_user_id: str = Field(type=str, required=True, mutable=False)


class UserMusicOnHoldGetRequest(OCIRequest):
    """
    Request the user level data associated with Music On Hold.

    The response is either a ``UserMusicOnHoldGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserMusicOnHoldModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Music On Hold.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserMusicOnHoldUserGetRequest(OCIRequest):
    """
    Request the user level data associated with Music On Hold User.

    The response is either a ``UserMusicOnHoldUserGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserMusicOnHoldUserGetRequest16()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserMusicOnHoldUserGetRequest16(OCIRequest):
    """
    Request the user level data associated with Music On Hold User.

    The response is either a ``UserMusicOnHoldUserGetResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserMusicOnHoldUserGetRequest20(OCIRequest):
    """
    Request the user level data associated with Music On Hold User.

    The response is either a ``UserMusicOnHoldUserGetResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserNetworkConferencingGetRequest(OCIRequest):
    """
    Request the Network-Based Conferencing data for a specified user.

    The response is either a ``UserNetworkConferencingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserNumberPortabilityAnnouncementGetRequest(OCIRequest):
    """
    Get the Number Portability Announcement attributes for the user.

    The response is either ``UserNumberPortabilityAnnouncementGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserNumberPortabilityAnnouncementModifyRequest(OCIRequest):
    """
    Modify the Number Portability Announcement attributes for the user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        enable: enable
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("enable", "enable", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    enable: bool = Field(type=bool, required=False, mutable=False)


class UserOCICallControlApplicationGetListRequest(OCIRequest):
    """
    Get the OCI call control application list that can be used by the user.

    The response is either ``UserOCICallControlApplicationGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanAuthorizationCodeDeleteListRequest(OCIRequest):
    """
    Delete a list of authorization codes from a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        code: code
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("code", "code", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanAuthorizationCodeGetListRequest(OCIRequest):
    """
    Request the list of authorization codes for a user.

    The response is either a ``UserOutgoingCallingPlanAuthorizationCodeGetListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanAuthorizationCodeGetRequest(OCIRequest):
    """
    Request the authorization code setting for a user.

    The response is either a ``UserOutgoingCallingPlanAuthorizationCodeGetResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanAuthorizationCodeModifyRequest(OCIRequest):
    """
    Modify the authorization setting for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)


class UserOutgoingCallingPlanCallMeNowGetRequest(OCIRequest):
    """
    Request the Call Me Now call permissions for a user.

    The response is either a ``UserOutgoingCallingPlanCallMeNowGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanDigitPlanCallMeNowGetRequest(OCIRequest):
    """
    Request the Call Me Now call permissions for digit patterns for a user.

    The response is either a ``UserOutgoingCallingPlanDigitPlanCallMeNowGetResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanDigitPlanOriginatingGetRequest(OCIRequest):
    """
    Request the originating permissions for digit patterns for a user.

    The response is either a ``UserOutgoingCallingPlanDigitPlanOriginatingGetResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanDigitPlanRedirectingGetRequest(OCIRequest):
    """
    Request the redirecting permissions for digit patterns for a user.

    The response is either a ``UserOutgoingCallingPlanDigitPlanRedirectingGetResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanOriginatingGetRequest(OCIRequest):
    """
    Request the originating permissions for a user.

    The response is either a ``UserOutgoingCallingPlanOriginatingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanPinholeDigitPlanCallMeNowGetRequest(OCIRequest):
    """
    Request the Call Me Now permissions for Pinhole digit patterns for a user.

    The response is either a
    ``UserOutgoingCallingPlanPinholeDigitPlanCallMeNowgGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanPinholeDigitPlanOriginatingGetRequest(OCIRequest):
    """
    Request the originating permissions for Pinhole digit patterns for a user.

    The response is either a
    ``UserOutgoingCallingPlanPinholeDigitPlanOriginatingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanPinholeDigitPlanRedirectingGetRequest(OCIRequest):
    """
    Request the redirecting permissions for Pinhole digit patterns for a user.

    The response is either a
    ``UserOutgoingCallingPlanPinholeDigitPlanRedirectingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanRedirectedGetRequest(OCIRequest):
    """
    Request the call forwarded/transferred permissions for a user.

    The response is either a ``UserOutgoingCallingPlanRedirectedGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanRedirectingGetRequest(OCIRequest):
    """
    Request the initiating call forwards/transfer permissions for a user.

    The response is either a ``UserOutgoingCallingPlanRedirectingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanSustainedAuthorizationCodeGetRequest(OCIRequest):
    """
    Request the sustained authorization code setting for a user.

    The response is either a
    ``UserOutgoingCallingPlanSustainedAuthorizationCodeGetResponse()`` or an
    ``ErrorResponse()``. Engineering Note: This command is used internally by Call
    Processing.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutgoingCallingPlanSustainedAuthorizationCodeModifyRequest(OCIRequest):
    """
    Modify or clear the sustained authorization code for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        code: code
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("code", "code", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    code: str = Field(type=str, required=False, mutable=False)


class UserOutgoingCallingPlanTransferNumbersGetRequest(OCIRequest):
    """
    Request the transfer numbers for a user.

    The response is either a ``UserOutgoingCallingPlanTransferNumbersGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutlookIntegrationGetRequest(OCIRequest):
    """
    Request the user level data associated with Outlook Integration.

    The response is either a ``UserOutlookIntegrationGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserOutlookIntegrationModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Outlook Integration.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        contact_retrieval_selection: contactRetrievalSelection
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("contact_retrieval_selection", "contactRetrievalSelection", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    contact_retrieval_selection: str = Field(type=str, required=False, mutable=False)


class UserPasswordInfoGetRequest(OCIRequest):
    """
    Request the user's Web password information.

    The response is either a ``UserPasswordInfoGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPersonalAssistantCallToNumberGetListRequest(OCIRequest):
    """
    Request to get the user assigned Call to Number List information.

    The response is either a ``UserPersonalAssistantCallToNumberGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPersonalAssistantExclusionNumberAddRequest(OCIRequest):
    """
    Add a User Personal Assistant Exclusion Number.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        exclusion_number: exclusionNumber
        description: description
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("exclusion_number", "exclusionNumber", str, is_required=True),
        E("description", "description", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    exclusion_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class UserPersonalAssistantExclusionNumberDeleteListRequest(OCIRequest):
    """
    Delete a list of User Personal Assistant Exclusion Number.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        exclusion_number: exclusionNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("exclusion_number", "exclusionNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    exclusion_number: str = Field(type=str, required=True, mutable=False)


class UserPersonalAssistantExclusionNumberGetRequest(OCIRequest):
    """
    Get a Personal Assistant Exclusion Number.

    The response is either ``UserPersonalAssistantExclusionNumberGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        exclusion_number: exclusionNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("exclusion_number", "exclusionNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    exclusion_number: str = Field(type=str, required=True, mutable=False)


class UserPersonalAssistantExclusionNumberModifyRequest(OCIRequest):
    """
    Modify an existing User Personal Assistant Exclusion Number description.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        exclusion_number: exclusionNumber
        description: description
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("exclusion_number", "exclusionNumber", str, is_required=True),
        E("description", "description", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    exclusion_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)


class UserPersonalAssistantGetRequest(OCIRequest):
    """
    Request to get the User Personal Assistant information.

    The response is either a ``UserPersonalAssistantGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPersonalAssistantModifyRequest(OCIRequest):
    """
    Modify the User Personal Assistant information.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        presence: presence
        enable_transfer_to_attendant: enableTransferToAttendant
        attendant_number: attendantNumber
        enable_ring_splash: enableRingSplash
        enable_expiration_time: enableExpirationTime
        expiration_time: expirationTime
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("presence", "presence", str),
        E("enable_transfer_to_attendant", "enableTransferToAttendant", bool),
        E("attendant_number", "attendantNumber", str),
        E("enable_ring_splash", "enableRingSplash", bool),
        E("enable_expiration_time", "enableExpirationTime", bool),
        E("expiration_time", "expirationTime", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    presence: str = Field(type=str, required=False, mutable=False)
    enable_transfer_to_attendant: bool = Field(type=bool, required=False, mutable=False)
    attendant_number: str = Field(type=str, required=False, mutable=False)
    enable_ring_splash: bool = Field(type=bool, required=False, mutable=False)
    enable_expiration_time: bool = Field(type=bool, required=False, mutable=False)
    expiration_time: str = Field(type=str, required=False, mutable=False)


class UserPersonalPhoneListDeleteListRequest(OCIRequest):
    """
    Delete one or more entries from a user's personal phone list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        entry_name: entryName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("entry_name", "entryName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    entry_name: str = Field(type=str, required=True, mutable=False)


class UserPersonalPhoneListModifyRequest(OCIRequest):
    """
    Modify an entry in a user's personal phone list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        entry_name: entryName
        new_entry_name: newEntryName
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("entry_name", "entryName", str, is_required=True),
        E("new_entry_name", "newEntryName", str),
        E("phone_number", "phoneNumber", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    entry_name: str = Field(type=str, required=True, mutable=False)
    new_entry_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)


class UserPhoneDirectoryGetSearchedListRequest(OCIRequest):
    """
    Request a table containing the phone directory for a user.

    If the specified user 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 user's group.  If the specified user is part of a service
    provider, the directory includes all users in the user's group and all entries in the
    common phone list of the specified user's group.  It is possible to search the
    directory for names containing a specified search string.  The search includes matches
    on first name or last name or common phone list names.

    The response is either ``UserPhoneDirectoryGetSearchedListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        name_search_string: nameSearchString
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("name_search_string", "nameSearchString", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    name_search_string: str = Field(type=str, required=False, mutable=False)


class UserPhysicalLocationGetRequest(OCIRequest):
    """
    Request the user level data associated with Physical Location.

    The response is either a ``UserPhysicalLocationGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPhysicalLocationModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Physical Location.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserPolycomPhoneServicesGetPrimaryEndpointListRequest(OCIRequest):
    """
    Request the user's list of device profiles on which the user is the primary user.

    The response is either a ``UserPolycomPhoneServicesGetPrimaryEndpointListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPortalPasscodeGetInfoRequest(OCIRequest):
    """
    Request the user's portal passcode information.

    The response is either a ``UserPortalPasscodeGetInfoResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPortalPasscodeModifyRequest(OCIRequest):
    """
    Modify the user's Portal passcode The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.


    Attributes:
        user_id: userId
        old_passcode: oldPasscode
        new_passcode: newPasscode
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("old_passcode", "oldPasscode", str),
        E("new_passcode", "newPasscode", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    old_passcode: str = Field(type=str, required=False, mutable=False)
    new_passcode: str = Field(type=str, required=True, mutable=False)


class UserPreAlertingAnnouncementDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's pre-alerting service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserPreAlertingAnnouncementGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's pre-alerting service.

    The response is either a ``UserPreAlertingAnnouncementGetCriteriaResponse()`` or an
    ``ErrorResponse()``. Replaced by:
    ``UserPreAlertingAnnouncementGetCriteriaRequest21()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserPreAlertingAnnouncementGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's pre-alerting service.

    The response is either a ``UserPreAlertingAnnouncementGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserPreAlertingAnnouncementGetRequest(OCIRequest):
    """
    Get the user's pre-alerting service setting.

    The response is either a ``UserPreAlertingAnnouncementGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPreAlertingAnnouncementGetRequest20(OCIRequest):
    """
    Get the user's pre-alerting service setting.

    The response is either a ``UserPreAlertingAnnouncementGetResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPreferredCarrierUserGetRequest(OCIRequest):
    """
    Requests the currently configured preferred carriers for a user.

    The response is either a ``UserPreferredCarrierUserGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPrepaidGetRequest(OCIRequest):
    """
    Request the user level data associated with Prepaid.

    The response is either a ``UserPrepaidGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPrepaidModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Prepaid.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserPrimaryEndpointAdvancedSettingGetRequest(OCIRequest):
    """
    Get the Users Primary Endpoint setting.

    The response is either a ``UserPrimaryEndpointAdvancedSettingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPrimaryEndpointAdvancedSettingModifyRequest(OCIRequest):
    """
    Modify the Users Primary Endpoint line control settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        allow_origination: allowOrigination
        allow_termination: allowTermination
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("allow_origination", "allowOrigination", bool),
        E("allow_termination", "allowTermination", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    allow_origination: bool = Field(type=bool, required=False, mutable=False)
    allow_termination: bool = Field(type=bool, required=False, mutable=False)


class UserPriorityAlertDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's priority alert service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserPriorityAlertGetCriteriaListRequest(OCIRequest):
    """
    Get the user's priority alert criteria listing.

    The response is either a ``UserPriorityAlertGetCriteriaListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPriorityAlertGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's priority alert service.

    The response is either a ``UserPriorityAlertGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserPriorityAlertGetCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's priority alert service.

    The response is either a ``UserPriorityAlertGetCriteriaResponse16()`` or an
    ``ErrorResponse()``. Replaced by: ``UserPriorityAlertGetCriteriaRequest21()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserPriorityAlertGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's priority alert service.

    The response is either a ``UserPriorityAlertGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserPrivacyGetRequest(OCIRequest):
    """
    Request the user level data associated with Privacy.

    The response is either a ``UserPrivacyGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPrivacyGetRequest13mp17(OCIRequest):
    """
    Request the user level data associated with Privacy.

    This command is supported for regular users only.

    The response is either a ``UserPrivacyGetResponse13mp17()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserPushToTalkGetRequest(OCIRequest):
    """
    Request the push to talk service setting.

    The response is either a ``UserPushToTalkGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserRemoteOfficeGetRequest(OCIRequest):
    """
    Request the user level data associated with Remote Office.

    The response is either a ``UserRemoteOfficeGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserRemoteOfficeModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Remote Office.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        remote_office_phone_number: remoteOfficePhoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("remote_office_phone_number", "remoteOfficePhoneNumber", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    remote_office_phone_number: str = Field(type=str, required=False, mutable=False)


class UserRouteListGetRequest(OCIRequest):
    """
    Get the route list setting and the list of number ranges assigned to a user.

    The response is either ``UserRouteListGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserRoutePointCallDispositionCodeGetAvailableListRequest(OCIRequest):
    """
    Get the list of available Route Point Call Disposition Codes to be used by a client.

    The response is either ``UserRoutePointCallDispositionCodeGetAvailableListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)


class UserRoutePointSupervisorGetListRequest(OCIRequest):
    """
    Get a list of Route Point supervisors assigned to a user.

    The response is either a ``UserRoutePointSupervisorGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSMDIMessageDeskAddServerRequest(OCIRequest):
    """
    Request to add a SMDI Server for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        device_name: deviceName
        net_address: netAddress
        port: port
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("net_address", "netAddress", str, is_required=True),
        E("port", "port", int, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    net_address: str = Field(type=str, required=True, mutable=False)
    port: int = Field(type=int, required=True, mutable=False)


class UserSMDIMessageDeskDeleteServerListRequest(OCIRequest):
    """
    Request to delete a list of SMDI Servers for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        device_name: deviceName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class UserSMDIMessageDeskGetRequest(OCIRequest):
    """
    Get the user's SMDI Message Desk service personal setting.

    The response is either a ``UserSMDIMessageDeskGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSMDIMessageDeskGetServerListRequest(OCIRequest):
    """
    Request to get a list of SMDI Servers defined for a user.

    The response is either a ``UserSMDIMessageDeskGetServerListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSMDIMessageDeskModifyRequest(OCIRequest):
    """
    Modify the user's SMDI Message Desk service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        message_desk_number: messageDeskNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("message_desk_number", "messageDeskNumber", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    message_desk_number: str = Field(type=str, required=False, mutable=False)


class UserScheduleAddRequest(OCIRequest):
    """
    Add a user schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        schedule_name: scheduleName
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_name", "scheduleName", str, is_required=True),
        E("schedule_type", "scheduleType", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_name: str = Field(type=str, required=True, mutable=False)
    schedule_type: str = Field(type=str, required=True, mutable=False)


class UserScheduleGetListRequest(OCIRequest):
    """
    Get the list of a user schedules.

    The list can be filtered by schedule type.

    The response is either a ``UserScheduleGetListResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_type", "scheduleType", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_type: str = Field(type=str, required=False, mutable=False)


class UserScheduleGetListRequest17sp1(OCIRequest):
    """
    Get the list of schedules viewable by a User.

    The list can be filtered by schedule type.

    The response is either a ``UserScheduleGetListResponse17sp1()`` or an
    ``ErrorResponse()``. This command is authorized to user who is Executive-Assistant of
    the Executive.

    Attributes:
        user_id: userId
        schedule_type: scheduleType
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_type", "scheduleType", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_type: str = Field(type=str, required=False, mutable=False)


class UserSecurityClassificationGetRequest(OCIRequest):
    """
    Get a user's Security Classifications configuration.

    The response is either ``UserSecurityClassificationGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSecurityClassificationModifyRequest(OCIRequest):
    """
    Modify a user's Security Classification configuration The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        user_id: userId
        security_classification: securityClassification
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("security_classification", "securityClassification", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    security_classification: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallAcceptanceDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's selective call acceptance service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallAcceptanceGetCriteriaListRequest(OCIRequest):
    """
    Get the user's selective call acceptance criteria listing.

    The response is either a ``UserSelectiveCallAcceptanceGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallAcceptanceGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's selective call acceptance service.

    The response is either a ``UserSelectiveCallAcceptanceGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallAcceptanceGetCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's selective call acceptance service.

    The response is either a ``UserSelectiveCallAcceptanceGetCriteriaResponse16()`` or an
    ``ErrorResponse()``. Replaced by:
    ``UserSelectiveCallAcceptanceGetCriteriaRequest21()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallAcceptanceGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's selective call acceptance service.

    The response is either a ``UserSelectiveCallAcceptanceGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallRejectionDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's selective call rejection service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallRejectionGetCriteriaListRequest(OCIRequest):
    """
    Get the user's selective call rejection criteria listing.

    The response is either a ``UserSelectiveCallRejectionGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallRejectionGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's selective call rejection service.

    The response is either a ``UserSelectiveCallRejectionGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallRejectionGetCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's selective call rejection service.

    The response is either a ``UserSelectiveCallRejectionGetCriteriaResponse16()`` or an
    ``ErrorResponse()``. Replaced by:
    ``UserSelectiveCallRejectionGetCriteriaRequest16sp1()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallRejectionGetCriteriaRequest16sp1(OCIRequest):
    """
    Get a criteria for the user's selective call rejection service.

    The response is either a ``UserSelectiveCallRejectionGetCriteriaResponse16sp1()`` or
    an ``ErrorResponse()``. Replaced by:
    ``UserSelectiveCallRejectionGetCriteriaRequest21()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSelectiveCallRejectionGetCriteriaRequest21(OCIRequest):
    """
    Get a criteria for the user's selective call rejection service.

    The response is either a ``UserSelectiveCallRejectionGetCriteriaResponse21()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSequentialRingDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's sequential ring service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSequentialRingGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's sequential ring service.

    The response is either a ``UserSequentialRingGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSequentialRingGetCriteriaRequest16(OCIRequest):
    """
    Get a criteria for the user's sequential ring service.

    The response is either a ``UserSequentialRingGetCriteriaResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSequentialRingGetRequest13mp16(OCIRequest):
    """
    Get the user's sequential ring service setting.

    The response is either a ``UserSequentialRingGetResponse13mp16()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserSequentialRingGetRequest14sp4()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSequentialRingGetRequest14sp4(OCIRequest):
    """
    Get the user's sequential ring service setting.

    The response is either a ``UserSequentialRingGetResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSeriesCompletionGetRequest(OCIRequest):
    """
    Gets the details of the Series Completion group that a user belongs to (if any).

    Any user can only belong to one Series Completion group.

    The response is either ``UserSeriesCompletionGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserServiceAssignListRequest(OCIRequest):
    """
    Request to assign the user services and service packs for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        service_name: serviceName
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("service_name", "serviceName", str, is_array=True),
        E("service_pack_name", "servicePackName", str, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    service_name: "List[str]" = Field(type=list, required=False, mutable=False)
    service_pack_name: "List[str]" = Field(type=list, required=False, mutable=False)


class UserServiceGetAssignmentListRequest(OCIRequest):
    """
    Requests the user's service and service pack assignment list with status.

    The response is either ``UserServiceGetAssignmentListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserServiceIsAssignedRequest(OCIRequest):
    """
    Request to determine if a UserService or service pack is assigned to the user.


    Attributes:
        user_id: userId
        service_name: serviceName
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("service_name", "serviceName", str),
        E("service_pack_name", "servicePackName", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    service_name: str = Field(type=str, required=False, mutable=False)
    service_pack_name: str = Field(type=str, required=False, mutable=False)


class UserServiceScriptsUserClearLogRequest(OCIRequest):
    """
    Clear the Service Script User Log.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserServiceScriptsUserGetLogRequest(OCIRequest):
    """
    Request the user level data associated Service Scripts User Log.

    The response is either a ``UserServiceScriptsGetUserLogResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserServiceScriptsUserGetRequest(OCIRequest):
    """
    Request the user level data associated with Service Scripts User Configuration.

    The response is either a ``UserServiceScriptsUserGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserServiceUnassignListRequest(OCIRequest):
    """
    Requests to unassign the user services and service packs for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        service_name: serviceName
        service_pack_name: servicePackName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("service_name", "serviceName", str, is_array=True),
        E("service_pack_name", "servicePackName", str, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    service_name: "List[str]" = Field(type=list, required=False, mutable=False)
    service_pack_name: "List[str]" = Field(type=list, required=False, mutable=False)


class UserShInterfaceGetUserIdDataRequest(OCIRequest):
    """
    Returns the Sh non-transparent data stored against a userId.

    The response is either a ``UserShInterfaceGetUserIdDataResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSharedCallAppearanceGetRequest14(OCIRequest):
    """
    Get the user's Shared Call Appearance service setting.

    The response is either a ``UserSharedCallAppearanceGetResponse14()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserSharedCallAppearanceGetRequest14sp2()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSharedCallAppearanceGetRequest14sp2(OCIRequest):
    """
    Get the user's Shared Call Appearance service setting.

    The response is either a ``UserSharedCallAppearanceGetResponse14sp2()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSharedCallAppearanceGetRequest16sp2(OCIRequest):
    """
    Get the user's Shared Call Appearance service setting.

    The response is either a ``UserSharedCallAppearanceGetResponse16sp2()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSharedCallAppearanceModifyRequest(OCIRequest):
    """
    Modify the user's Shared Call Appearance service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: enableCallParkNotification

    Attributes:
        user_id: userId
        alert_all_appearances_for_click_to_dial_calls:
            alertAllAppearancesForClickToDialCalls
        alert_all_appearances_for_group_paging_calls:
            alertAllAppearancesForGroupPagingCalls
        allow_sca_call_retrieve: allowSCACallRetrieve
        multiple_call_arrangement_is_active: multipleCallArrangementIsActive
        allow_bridging_between_locations: allowBridgingBetweenLocations
        bridge_warning_tone: bridgeWarningTone
        enable_call_park_notification: enableCallParkNotification
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "alert_all_appearances_for_click_to_dial_calls",
            "alertAllAppearancesForClickToDialCalls", bool,
        ),
        E(
            "alert_all_appearances_for_group_paging_calls",
            "alertAllAppearancesForGroupPagingCalls", bool,
        ),
        E("allow_sca_call_retrieve", "allowSCACallRetrieve", bool),
        E("multiple_call_arrangement_is_active", "multipleCallArrangementIsActive", bool),
        E("allow_bridging_between_locations", "allowBridgingBetweenLocations", bool),
        E("bridge_warning_tone", "bridgeWarningTone", str),
        E("enable_call_park_notification", "enableCallParkNotification", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    alert_all_appearances_for_click_to_dial_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    alert_all_appearances_for_group_paging_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_sca_call_retrieve: bool = Field(type=bool, required=False, mutable=False)
    multiple_call_arrangement_is_active: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_bridging_between_locations: bool = Field(type=bool, required=False, mutable=False)
    bridge_warning_tone: str = Field(type=str, required=False, mutable=False)
    enable_call_park_notification: bool = Field(type=bool, required=False, mutable=False)


class UserSimultaneousRingFamilyAddPhoneNumberRequest(OCIRequest):
    """
    Add a new phone number and set the answer confirmation setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        answer_confirmation_required: answerConfirmationRequired
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E(
            "answer_confirmation_required", "answerConfirmationRequired", bool,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    answer_confirmation_required: bool = Field(type=bool, required=True, mutable=False)


class UserSimultaneousRingFamilyDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's simultaneous ring family service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingFamilyDeletePhoneNumberRequest(OCIRequest):
    """
    Delete the phone number specified.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingFamilyGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's simultaneous ring family service.

    The response is either a ``UserSimultaneousRingFamilyGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingFamilyGetPhoneNumberRequest(OCIRequest):
    """
    Get the answer confirmation setting for the phone number specified.

    The response is either a ``UserSimultaneousRingFamilyGetPhoneNumberResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingFamilyGetRequest(OCIRequest):
    """
    Get the user's simultaneous ring service family setting.

    The response is either a ``UserSimultaneousRingFamilyGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserSimultaneousRingFamilyGetRequest14sp4()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingFamilyGetRequest14sp4(OCIRequest):
    """
    Get the user's simultaneous ring service Family setting.

    The response is either a ``UserSimultaneousRingFamilyGetResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingFamilyGetRequest17(OCIRequest):
    """
    Get the user's simultaneous ring family service setting.

    The response is either a ``UserSimultaneousRingFamilyGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingFamilyModifyPhoneNumberRequest(OCIRequest):
    """
    Modify the require confirmation setting for the destination.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        answer_confirmation_required: answerConfirmationRequired
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("answer_confirmation_required", "answerConfirmationRequired", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    answer_confirmation_required: bool = Field(type=bool, required=False, mutable=False)


class UserSimultaneousRingFamilyModifyRequest14sp4(OCIRequest):
    """
    Modify the user's simultaneous ring family service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        incoming_calls: incomingCalls
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("incoming_calls", "incomingCalls", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    incoming_calls: str = Field(type=str, required=False, mutable=False)


class UserSimultaneousRingPersonalAddPhoneNumberRequest(OCIRequest):
    """
    Add a new phone number and set the answer confirmation setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        answer_confirmation_required: answerConfirmationRequired
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E(
            "answer_confirmation_required", "answerConfirmationRequired", bool,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    answer_confirmation_required: bool = Field(type=bool, required=True, mutable=False)


class UserSimultaneousRingPersonalDeleteCriteriaRequest(OCIRequest):
    """
    Delete a criteria from the user's simultaneous ring personal service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingPersonalDeletePhoneNumberRequest(OCIRequest):
    """
    Delete the phone number specified.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingPersonalGetCriteriaRequest(OCIRequest):
    """
    Get a criteria for the user's simultaneous ring personal service.

    The response is either a ``UserSimultaneousRingPersonalGetCriteriaResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingPersonalGetPhoneNumberRequest(OCIRequest):
    """
    Get the answer confirmation setting for the phone number specified.

    The response is either a ``UserSimultaneousRingPersonalGetPhoneNumberResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingPersonalGetRequest(OCIRequest):
    """
    Get the user's simultaneous ring service personal setting.

    The response is either a ``UserSimultaneousRingPersonalGetResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserSimultaneousRingPersonalGetRequest14sp4()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingPersonalGetRequest14sp4(OCIRequest):
    """
    Get the user's simultaneous ring service personal setting.

    The response is either a ``UserSimultaneousRingPersonalGetResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingPersonalGetRequest17(OCIRequest):
    """
    Get the user's simultaneous ring personal service setting.

    The response is either a ``UserSimultaneousRingPersonalGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSimultaneousRingPersonalModifyPhoneNumberRequest(OCIRequest):
    """
    Modify the require confirmation setting for the destination.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        answer_confirmation_required: answerConfirmationRequired
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("answer_confirmation_required", "answerConfirmationRequired", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    answer_confirmation_required: bool = Field(type=bool, required=False, mutable=False)


class UserSimultaneousRingPersonalModifyRequest14sp4(OCIRequest):
    """
    Modify the user's simultaneous ring personal service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        incoming_calls: incomingCalls
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("incoming_calls", "incomingCalls", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    incoming_calls: str = Field(type=str, required=False, mutable=False)


class UserSingleSignOnCreateDeviceTokenRequest(OCIRequest):
    """
    This command allows a BroadWorks or Third-Party Client Application to create a Single
    Sign-On token for a device of a user.

    The token is created only if: 1. the specified user is the owner of a lineport on the
    specified device (including a trunk user on a trunk device). 2. and, the specified
    device is not in locked state.  3. and, the device type of the device does support
    Device Management.

    The response is either ``UserSingleSignOnCreateDeviceTokenResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        device_level: deviceLevel
        device_name: deviceName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("device_level", "deviceLevel", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    device_level: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)


class UserSpeedDial100DeleteListRequest(OCIRequest):
    """
    Delete one or more speed dial 100 settings for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        speed_code: speedCode
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("speed_code", "speedCode", int),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    speed_code: int = Field(type=int, required=False, mutable=False)


class UserSpeedDial100GetListRequest(OCIRequest):
    """
    Get the speed dial 100 settings for a user.

    The response is either a ``UserSpeedDial100GetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSpeedDial100GetListRequest17sp1(OCIRequest):
    """
    Get the speed dial 100 settings for a user.

    The response is either a ``UserSpeedDial100GetListResponse17sp1()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserSpeedDial100GetRequest(OCIRequest):
    """
    Get speed dial 100 settings for a speed code.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        speed_code: speedCode
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("speed_code", "speedCode", int, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    speed_code: int = Field(type=int, required=True, mutable=False)


class UserSpeedDial8GetListRequest(OCIRequest):
    """
    Get the speed dial 8 settings for a user.

    The response is either a ``UserSpeedDial8GetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserThirdPartyVoiceMailSupportGetRequest13mp16(OCIRequest):
    """
    Request the user level data associated with Third-Party Voice Mail Support.

    The response is either a ``UserThirdPartyVoiceMailSupportGetResponse13mp16()`` or an
    ``ErrorResponse()``. Replaced by: ``UserThirdPartyVoiceMailSupportGetRequest17()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserThirdPartyVoiceMailSupportGetRequest17(OCIRequest):
    """
    Request the user level data associated with Third-Party Voice Mail Support.

    The response is either a ``UserThirdPartyVoiceMailSupportGetResponse17()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserThirdPartyVoiceMailSupportModifyRequest(OCIRequest):
    """
    Modify the Third Party Voice Mail Support settings for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        busy_redirect_to_voice_mail: busyRedirectToVoiceMail
        no_answer_redirect_to_voice_mail: noAnswerRedirectToVoiceMail
        server_selection: serverSelection
        user_server: userServer
        mailbox_id_type: mailboxIdType
        mailbox_url: mailboxURL
        no_answer_number_of_rings: noAnswerNumberOfRings
        always_redirect_to_voice_mail: alwaysRedirectToVoiceMail
        out_of_primary_zone_redirect_to_voice_mail: outOfPrimaryZoneRedirectToVoiceMail
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("busy_redirect_to_voice_mail", "busyRedirectToVoiceMail", bool),
        E("no_answer_redirect_to_voice_mail", "noAnswerRedirectToVoiceMail", bool),
        E("server_selection", "serverSelection", str),
        E("user_server", "userServer", str),
        E("mailbox_id_type", "mailboxIdType", str),
        E("mailbox_url", "mailboxURL", str),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int),
        E("always_redirect_to_voice_mail", "alwaysRedirectToVoiceMail", bool),
        E(
            "out_of_primary_zone_redirect_to_voice_mail",
            "outOfPrimaryZoneRedirectToVoiceMail", bool,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    busy_redirect_to_voice_mail: bool = Field(type=bool, required=False, mutable=False)
    no_answer_redirect_to_voice_mail: bool = Field(type=bool, required=False, mutable=False)
    server_selection: str = Field(type=str, required=False, mutable=False)
    user_server: str = Field(type=str, required=False, mutable=False)
    mailbox_id_type: str = Field(type=str, required=False, mutable=False)
    mailbox_url: str = Field(type=str, required=False, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=False, mutable=False)
    always_redirect_to_voice_mail: bool = Field(type=bool, required=False, mutable=False)
    out_of_primary_zone_redirect_to_voice_mail: bool = Field(
        type=bool, required=False, mutable=False,
    )


class UserTimeScheduleDeleteRequest(OCIRequest):
    """
    Delete a user time schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        time_schedule_name: timeScheduleName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    time_schedule_name: str = Field(type=str, required=True, mutable=False)


class UserTimeScheduleGetListRequest(OCIRequest):
    """
    Get all time schedules for a user.

    This includes the user's personal schedules and user's group's schedules.

    The response is either a ``UserTimeScheduleGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserTimeScheduleGetRequest(OCIRequest):
    """
    Request to get a user time schedule.

    The response is either a ``UserTimeScheduleGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        time_schedule_name: timeScheduleName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    time_schedule_name: str = Field(type=str, required=True, mutable=False)


class UserTwoStageDialingModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Two Stage Dialing.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        allow_activation_with_user_addresses: allowActivationWithUserAddresses
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("allow_activation_with_user_addresses", "allowActivationWithUserAddresses", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    allow_activation_with_user_addresses: bool = Field(
        type=bool, required=False, mutable=False,
    )


class UserVideoAddOnGetRequest14(OCIRequest):
    """
    Get the user's Video Add-On service setting.

    The response is either a ``UserVideoAddOnGetResponse14()`` or an ``ErrorResponse()``.
    Replaced by: ``UserVideoAddOnGetRequest19()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVideoAddOnGetRequest19(OCIRequest):
    """
    Get the user's Video Add-On service setting.

    The response is either a ``UserVideoAddOnGetResponse19()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserAddAliasListRequest(OCIRequest):
    """
    Add one or more voice mail aliases to a users voice message.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserDeleteAliasListRequest(OCIRequest):
    """
    Delete one or more voice mail aliases from a users voice message.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetAdvancedVoiceManagementRequest(OCIRequest):
    """
    Get the user's voice messaging advanced voice management service setting.

    The response is either a
    ``UserVoiceMessagingUserGetAdvancedVoiceManagementResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserVoiceMessagingUserGetAdvancedVoiceManagementRequest14sp3()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetAdvancedVoiceManagementRequest14sp3(OCIRequest):
    """
    Get the user's voice messaging advanced voice management service setting.

    The response is either a
    ``UserVoiceMessagingUserGetAdvancedVoiceManagementResponse14sp3()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetAliasListRequest(OCIRequest):
    """
    Get the voice mail aliases for a users voice message.

    The response is either a ``UserVoiceMessagingUserGetAliasListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetDistributionListRequest(OCIRequest):
    """
    Get a voice mail distribution list for a users voice message.

    The response is either ``UserVoiceMessagingUserGetDistributionListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        list_id: listId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("list_id", "listId", int, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    list_id: int = Field(type=int, required=True, mutable=False)


class UserVoiceMessagingUserGetGreetingRequest13mp16(OCIRequest):
    """
    Get the user's voice messaging greeting information.

    The response is either a ``UserVoiceMessagingUserGetGreetingResponse13mp16()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserVoiceMessagingUserGetGreetingRequest16()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetGreetingRequest16(OCIRequest):
    """
    Get the user's voice messaging greeting information.

    The response is either a ``UserVoiceMessagingUserGetGreetingResponse16()`` or an
    ``ErrorResponse()``. This request is replaced by:
    ``UserVoiceMessagingUserGetGreetingRequest18()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetGreetingRequest18(OCIRequest):
    """
    Get the user's voice messaging greeting information.

    The response is either a ``UserVoiceMessagingUserGetGreetingResponse18()`` or an
    ``ErrorResponse()``. Replaced by ``UserVoiceMessagingUserGetGreetingRequest18sp1()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetGreetingRequest18sp1(OCIRequest):
    """
    Get the user's voice messaging greeting information.

    The response is either a ``UserVoiceMessagingUserGetGreetingResponse18sp1()`` or an
    ``ErrorResponse()``. Replaced by ``UserVoiceMessagingUserGetGreetingRequest20()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetGreetingRequest20(OCIRequest):
    """
    Get the user's voice messaging greeting information.

    The response is either a ``UserVoiceMessagingUserGetGreetingResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetOutgoingSMDIMWIRequest(OCIRequest):
    """
    Get the user's voice messaging outgoing SMDI message waiting indicator service
    setting.

    The response is either a ``UserVoiceMessagingUserGetOutgoingSMDIMWIResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetVoiceManagementRequest13mp8(OCIRequest):
    """
    Get the user's voice messaging voice management service settings.

    The response is either a ``UserVoiceMessagingUserGetVoiceManagementResponse13mp8()``
    or an ``ErrorResponse()``. Replaced by:
    ``UserVoiceMessagingUserGetVoiceManagementRequest17()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetVoiceManagementRequest17(OCIRequest):
    """
    Get the user's voice messaging voice management service settings.

    The response is either a ``UserVoiceMessagingUserGetVoiceManagementResponse17()`` or
    an ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetVoicePortalPasswordInfoRequest(OCIRequest):
    """
    Request the user's voice portal password information.

    The response is either a
    ``UserVoiceMessagingUserGetVoicePortalPasswordInfoResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserPortalPasscodeGetInfoRequest()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetVoicePortalRequest(OCIRequest):
    """
    Get the user's voice messaging voice portal settings.

    The response is either a ``UserVoiceMessagingUserGetVoicePortalResponse()`` or an
    ``ErrorResponse()``.

    Replaced By: ``UserVoiceMessagingUserGetVoicePortalRequest16()``

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetVoicePortalRequest16(OCIRequest):
    """
    Get the user's voice messaging voice portal settings.

    The response is either a ``UserVoiceMessagingUserGetVoicePortalResponse16()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserGetVoicePortalRequest20(OCIRequest):
    """
    Get the user's voice messaging voice portal settings.

    The response is either a ``UserVoiceMessagingUserGetVoicePortalResponse20()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoiceMessagingUserModifyAdvancedVoiceManagementRequest(OCIRequest):
    """
    Modify the user's voice messaging advanced voice management service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        mail_server_selection: mailServerSelection
        group_mail_server_email_address: groupMailServerEmailAddress
        group_mail_server_user_id: groupMailServerUserId
        group_mail_server_password: groupMailServerPassword
        use_group_default_mail_server_full_mailbox_limit:
            useGroupDefaultMailServerFullMailboxLimit
        group_mail_server_full_mailbox_limit: groupMailServerFullMailboxLimit
        personal_mail_server_net_address: personalMailServerNetAddress
        personal_mail_server_protocol: personalMailServerProtocol
        personal_mail_server_real_delete_for_imap: personalMailServerRealDeleteForImap
        personal_mail_server_email_address: personalMailServerEmailAddress
        personal_mail_server_user_id: personalMailServerUserId
        personal_mail_server_password: personalMailServerPassword
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("mail_server_selection", "mailServerSelection", str),
        E("group_mail_server_email_address", "groupMailServerEmailAddress", str),
        E("group_mail_server_user_id", "groupMailServerUserId", str),
        E("group_mail_server_password", "groupMailServerPassword", str),
        E(
            "use_group_default_mail_server_full_mailbox_limit",
            "useGroupDefaultMailServerFullMailboxLimit", bool,
        ),
        E("group_mail_server_full_mailbox_limit", "groupMailServerFullMailboxLimit", int),
        E("personal_mail_server_net_address", "personalMailServerNetAddress", str),
        E("personal_mail_server_protocol", "personalMailServerProtocol", str),
        E(
            "personal_mail_server_real_delete_for_imap",
            "personalMailServerRealDeleteForImap", bool,
        ),
        E("personal_mail_server_email_address", "personalMailServerEmailAddress", str),
        E("personal_mail_server_user_id", "personalMailServerUserId", str),
        E("personal_mail_server_password", "personalMailServerPassword", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    mail_server_selection: str = Field(type=str, required=False, mutable=False)
    group_mail_server_email_address: str = Field(type=str, required=False, mutable=False)
    group_mail_server_user_id: str = Field(type=str, required=False, mutable=False)
    group_mail_server_password: str = Field(type=str, required=False, mutable=False)
    use_group_default_mail_server_full_mailbox_limit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    group_mail_server_full_mailbox_limit: int = Field(type=int, required=False, mutable=False)
    personal_mail_server_net_address: str = Field(type=str, required=False, mutable=False)
    personal_mail_server_protocol: str = Field(type=str, required=False, mutable=False)
    personal_mail_server_real_delete_for_imap: bool = Field(
        type=bool, required=False, mutable=False,
    )
    personal_mail_server_email_address: str = Field(type=str, required=False, mutable=False)
    personal_mail_server_user_id: str = Field(type=str, required=False, mutable=False)
    personal_mail_server_password: str = Field(type=str, required=False, mutable=False)


class UserVoiceMessagingUserModifyVoiceManagementRequest(OCIRequest):
    """
    Modify the user's voice messaging voice management service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        processing: processing
        voice_message_delivery_email_address: voiceMessageDeliveryEmailAddress
        use_phone_message_waiting_indicator: usePhoneMessageWaitingIndicator
        send_voice_message_notify_email: sendVoiceMessageNotifyEmail
        voice_message_notify_email_address: voiceMessageNotifyEmailAddress
        send_carbon_copy_voice_message: sendCarbonCopyVoiceMessage
        voice_message_carbon_copy_email_address: voiceMessageCarbonCopyEmailAddress
        transfer_on_zero_to_phone_number: transferOnZeroToPhoneNumber
        transfer_phone_number: transferPhoneNumber
        always_redirect_to_voice_mail: alwaysRedirectToVoiceMail
        busy_redirect_to_voice_mail: busyRedirectToVoiceMail
        no_answer_redirect_to_voice_mail: noAnswerRedirectToVoiceMail
        out_of_primary_zone_redirect_to_voice_mail: outOfPrimaryZoneRedirectToVoiceMail
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("processing", "processing", str),
        E("voice_message_delivery_email_address", "voiceMessageDeliveryEmailAddress", str),
        E("use_phone_message_waiting_indicator", "usePhoneMessageWaitingIndicator", bool),
        E("send_voice_message_notify_email", "sendVoiceMessageNotifyEmail", bool),
        E("voice_message_notify_email_address", "voiceMessageNotifyEmailAddress", str),
        E("send_carbon_copy_voice_message", "sendCarbonCopyVoiceMessage", bool),
        E(
            "voice_message_carbon_copy_email_address",
            "voiceMessageCarbonCopyEmailAddress", str,
        ),
        E("transfer_on_zero_to_phone_number", "transferOnZeroToPhoneNumber", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("always_redirect_to_voice_mail", "alwaysRedirectToVoiceMail", bool),
        E("busy_redirect_to_voice_mail", "busyRedirectToVoiceMail", bool),
        E("no_answer_redirect_to_voice_mail", "noAnswerRedirectToVoiceMail", bool),
        E(
            "out_of_primary_zone_redirect_to_voice_mail",
            "outOfPrimaryZoneRedirectToVoiceMail", bool,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    processing: str = Field(type=str, required=False, mutable=False)
    voice_message_delivery_email_address: str = Field(type=str, required=False, mutable=False)
    use_phone_message_waiting_indicator: bool = Field(
        type=bool, required=False, mutable=False,
    )
    send_voice_message_notify_email: bool = Field(type=bool, required=False, mutable=False)
    voice_message_notify_email_address: str = Field(type=str, required=False, mutable=False)
    send_carbon_copy_voice_message: bool = Field(type=bool, required=False, mutable=False)
    voice_message_carbon_copy_email_address: str = Field(
        type=str, required=False, mutable=False,
    )
    transfer_on_zero_to_phone_number: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    always_redirect_to_voice_mail: bool = Field(type=bool, required=False, mutable=False)
    busy_redirect_to_voice_mail: bool = Field(type=bool, required=False, mutable=False)
    no_answer_redirect_to_voice_mail: bool = Field(type=bool, required=False, mutable=False)
    out_of_primary_zone_redirect_to_voice_mail: bool = Field(
        type=bool, required=False, mutable=False,
    )


class UserVoiceMessagingUserModifyVoicePortalPasswordRequest(OCIRequest):
    """
    Modify the user's Voice Portal password The response is either a ``SuccessResponse()``
    or an ``ErrorResponse()``.

    Engineering Note: This command is used internally by Call Processing.

    Replaced By: ``UserPortalPasscodeModifyRequest()``

    Attributes:
        user_id: userId
        old_password: oldPassword
        new_password: newPassword
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("old_password", "oldPassword", str),
        E("new_password", "newPassword", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    old_password: str = Field(type=str, required=False, mutable=False)
    new_password: str = Field(type=str, required=True, mutable=False)


class UserVoicePortalCallingGetRequest(OCIRequest):
    """
    Request the user level data associated with Voice Portal Calling.

    The response is either a ``UserVoicePortalCallingGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserVoicePortalCallingModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Voice Portal Calling.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)


class UserZoneCallingRestrictionsGetRequest(OCIRequest):
    """
    Gets the home zone for a user The response is either a
    ``UserZoneCallingRestrictionsGetResponse()`` or an ``ErrorResponse()``.


    Attributes:
        user_id: userId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)


class UserZoneCallingRestrictionsModifyRequest(OCIRequest):
    """
    Modify the home zone for a user The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.


    Attributes:
        user_id: userId
        home_zone_name: homeZoneName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("home_zone_name", "homeZoneName", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    home_zone_name: str = Field(type=str, required=False, mutable=False)


class VerifySessionIsValidRequest(OCIRequest):
    """
    Query the provisioning server to verify the session is authorized.

    Most applications should not need this command, because the provisioning server
    verifies the session is authorized for all commands.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.
    """

    _ELEMENTS = ()


class EnterpriseCallCenterAgentThresholdProfileModifyRequest(OCIRequest):
    """
    Modifies an existing Call Center Agent Threshold Profile in the Enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        profile_name: profileName
        new_profile_name: newProfileName
        profile_description: profileDescription
        threshold_current_call_state_idle_time_yellow:
            thresholdCurrentCallStateIdleTimeYellow
        threshold_current_call_state_idle_time_red: thresholdCurrentCallStateIdleTimeRed
        threshold_current_call_state_on_call_time_yellow:
            thresholdCurrentCallStateOnCallTimeYellow
        threshold_current_call_state_on_call_time_red:
            thresholdCurrentCallStateOnCallTimeRed
        threshold_current_agent_state_unavailable_time_yellow:
            thresholdCurrentAgentStateUnavailableTimeYellow
        threshold_current_agent_state_unavailable_time_red:
            thresholdCurrentAgentStateUnavailableTimeRed
        threshold_average_busy_in_time_yellow: thresholdAverageBusyInTimeYellow
        threshold_average_busy_in_time_red: thresholdAverageBusyInTimeRed
        threshold_average_busy_out_time_yellow: thresholdAverageBusyOutTimeYellow
        threshold_average_busy_out_time_red: thresholdAverageBusyOutTimeRed
        threshold_average_wrap_up_time_yellow: thresholdAverageWrapUpTimeYellow
        threshold_average_wrap_up_time_red: thresholdAverageWrapUpTimeRed
        enable_notification_email: enableNotificationEmail
        notification_email_address_list: notificationEmailAddressList
        agent_user_id_list: agentUserIdList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
        E("new_profile_name", "newProfileName", str),
        E("profile_description", "profileDescription", str),
        E(
            "threshold_current_call_state_idle_time_yellow",
            "thresholdCurrentCallStateIdleTimeYellow", int,
        ),
        E(
            "threshold_current_call_state_idle_time_red",
            "thresholdCurrentCallStateIdleTimeRed", int,
        ),
        E(
            "threshold_current_call_state_on_call_time_yellow",
            "thresholdCurrentCallStateOnCallTimeYellow", int,
        ),
        E(
            "threshold_current_call_state_on_call_time_red",
            "thresholdCurrentCallStateOnCallTimeRed", int,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_yellow",
            "thresholdCurrentAgentStateUnavailableTimeYellow", int,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_red",
            "thresholdCurrentAgentStateUnavailableTimeRed", int,
        ),
        E("threshold_average_busy_in_time_yellow", "thresholdAverageBusyInTimeYellow", int),
        E("threshold_average_busy_in_time_red", "thresholdAverageBusyInTimeRed", int),
        E("threshold_average_busy_out_time_yellow", "thresholdAverageBusyOutTimeYellow", int),
        E("threshold_average_busy_out_time_red", "thresholdAverageBusyOutTimeRed", int),
        E("threshold_average_wrap_up_time_yellow", "thresholdAverageWrapUpTimeYellow", int),
        E("threshold_average_wrap_up_time_red", "thresholdAverageWrapUpTimeRed", int),
        E("enable_notification_email", "enableNotificationEmail", bool),
        E(
            "notification_email_address_list", "notificationEmailAddressList",
            OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList,
            is_complex=True,
        ),
        E(
            "agent_user_id_list", "agentUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)
    new_profile_name: str = Field(type=str, required=False, mutable=False)
    profile_description: str = Field(type=str, required=False, mutable=False)
    threshold_current_call_state_idle_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_idle_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_on_call_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_on_call_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_agent_state_unavailable_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_agent_state_unavailable_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_in_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_in_time_red: int = Field(type=int, required=False, mutable=False)
    threshold_average_busy_out_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_out_time_red: int = Field(type=int, required=False, mutable=False)
    threshold_average_wrap_up_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_wrap_up_time_red: int = Field(type=int, required=False, mutable=False)
    enable_notification_email: bool = Field(type=bool, required=False, mutable=False)
    notification_email_address_list: "OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList" = Field(
        type=OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList,
        required=False, mutable=False,
    )
    agent_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class EnterpriseCallCenterAgentUnavailableCodeSettingsModifyRequest(OCIRequest):
    """
    Modify the enterprise level data associated with Call Center Agents Unavailable Code
    Settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enable_agent_unavailable_codes: enableAgentUnavailableCodes
        default_agent_unavailable_code_on_dnd: defaultAgentUnavailableCodeOnDND
        default_agent_unavailable_code_on_personal_calls:
            defaultAgentUnavailableCodeOnPersonalCalls
        default_agent_unavailable_code_on_consecutive_bounces:
            defaultAgentUnavailableCodeOnConsecutiveBounces
        default_agent_unavailable_code_on_not_reachable:
            defaultAgentUnavailableCodeOnNotReachable
        force_use_of_agent_unavailable_codes: forceUseOfAgentUnavailableCodes
        default_agent_unavailable_code: defaultAgentUnavailableCode
        code_state_list: codeStateList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enable_agent_unavailable_codes", "enableAgentUnavailableCodes", bool),
        E("default_agent_unavailable_code_on_dnd", "defaultAgentUnavailableCodeOnDND", str),
        E(
            "default_agent_unavailable_code_on_personal_calls",
            "defaultAgentUnavailableCodeOnPersonalCalls", str,
        ),
        E(
            "default_agent_unavailable_code_on_consecutive_bounces",
            "defaultAgentUnavailableCodeOnConsecutiveBounces", str,
        ),
        E(
            "default_agent_unavailable_code_on_not_reachable",
            "defaultAgentUnavailableCodeOnNotReachable", str,
        ),
        E("force_use_of_agent_unavailable_codes", "forceUseOfAgentUnavailableCodes", bool),
        E("default_agent_unavailable_code", "defaultAgentUnavailableCode", str),
        E(
            "code_state_list", "codeStateList",
            OCI.CallCenterAgentUnavailableCodeStateModify, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enable_agent_unavailable_codes: bool = Field(type=bool, required=False, mutable=False)
    default_agent_unavailable_code_on_dnd: str = Field(
        type=str, required=False, mutable=False,
    )
    default_agent_unavailable_code_on_personal_calls: str = Field(
        type=str, required=False, mutable=False,
    )
    default_agent_unavailable_code_on_consecutive_bounces: str = Field(
        type=str, required=False, mutable=False,
    )
    default_agent_unavailable_code_on_not_reachable: str = Field(
        type=str, required=False, mutable=False,
    )
    force_use_of_agent_unavailable_codes: bool = Field(
        type=bool, required=False, mutable=False,
    )
    default_agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    code_state_list: "OCI.CallCenterAgentUnavailableCodeStateModify" = Field(
        type=OCI.CallCenterAgentUnavailableCodeStateModify, required=False, mutable=False,
    )


class EnterpriseCallCenterCallDispositionCodeModifyActiveListRequest(OCIRequest):
    """
    Request to set the active status of Call Center Call Disposition Codes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        call_disposition_code_activation: callDispositionCodeActivation
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "call_disposition_code_activation", "callDispositionCodeActivation",
            OCI.CallDispositionCodeActivation, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    call_disposition_code_activation: "OCI.CallDispositionCodeActivation" = Field(
        type=OCI.CallDispositionCodeActivation, required=False, mutable=False,
    )


class EnterpriseCallCenterCurrentAndPastAgentGetListRequest(OCIRequest):
    """
    Request to all the current and past agents in the enterprise.

    The searchCriteriaExactUserGroup does not apply to past agents.

    The response is either ``EnterpriseCallCenterCurrentAndPastAgentGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class EnterpriseCallCenterCurrentAndPastCallCenterGetListRequest(OCIRequest):
    """
    Request to get all the current and past call centers for the enterprise.

    The searchCriteriaExactUserGroup does not apply to past call centers.

    The response is either
    ``EnterpriseCallCenterCurrentAndPastCallCenterGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        is_premium_only: isPremiumOnly
        response_size_limit: responseSizeLimit
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_call_center_name: searchCriteriaCallCenterName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("is_premium_only", "isPremiumOnly", bool),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_call_center_name", "searchCriteriaCallCenterName",
            OCI.SearchCriteriaCallCenterName, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    is_premium_only: bool = Field(type=bool, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_call_center_name: "OCI.SearchCriteriaCallCenterName" = Field(
        type=OCI.SearchCriteriaCallCenterName, required=False, mutable=False,
    )


class EnterpriseCallCenterEnhancedReportingBrandingModifyRequest(OCIRequest):
    """
    Request to modify the enterprise branding configuration.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        branding_choice: brandingChoice
        branding_file: brandingFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("branding_choice", "brandingChoice", str),
        E("branding_file", "brandingFile", OCI.LabeledFileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    branding_choice: str = Field(type=str, required=False, mutable=False)
    branding_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class EnterpriseCallCenterEnhancedReportingReportTemplateAddRequest(OCIRequest):
    """
    Request to add an Enterprise level call center report template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        description: description
        data_template: dataTemplate
        filter_number: filterNumber
        xslt_template: xsltTemplate
        scope: scope
        is_enabled: isEnabled
        is_realtime_report: isRealtimeReport
        call_completion_threshold_param: callCompletionThresholdParam
        short_duration_threshold_param: shortDurationThresholdParam
        service_level_threshold_param: serviceLevelThresholdParam
        service_level_inclusions_param: serviceLevelInclusionsParam
        service_level_objective_threshold_param: serviceLevelObjectiveThresholdParam
        abandoned_call_threshold_param: abandonedCallThresholdParam
        service_level_threshold_param_number: serviceLevelThresholdParamNumber
        abandoned_call_threshold_param_number: abandonedCallThresholdParamNumber
        filter_value: filterValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("data_template", "dataTemplate", str, is_required=True),
        E("filter_number", "filterNumber", int),
        E(
            "xslt_template", "xsltTemplate", OCI.LabeledFileResource, is_complex=True,
            is_required=True,
        ),
        E("scope", "scope", str, is_required=True),
        E("is_enabled", "isEnabled", bool, is_required=True),
        E("is_realtime_report", "isRealtimeReport", bool),
        E("call_completion_threshold_param", "callCompletionThresholdParam", str),
        E("short_duration_threshold_param", "shortDurationThresholdParam", str),
        E("service_level_threshold_param", "serviceLevelThresholdParam", str),
        E("service_level_inclusions_param", "serviceLevelInclusionsParam", str),
        E(
            "service_level_objective_threshold_param",
            "serviceLevelObjectiveThresholdParam", str,
        ),
        E("abandoned_call_threshold_param", "abandonedCallThresholdParam", str),
        E("service_level_threshold_param_number", "serviceLevelThresholdParamNumber", int),
        E("abandoned_call_threshold_param_number", "abandonedCallThresholdParamNumber", int),
        E("filter_value", "filterValue", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    data_template: str = Field(type=str, required=True, mutable=False)
    filter_number: int = Field(type=int, required=False, mutable=False)
    xslt_template: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=True, mutable=False,
    )
    scope: str = Field(type=str, required=True, mutable=False)
    is_enabled: bool = Field(type=bool, required=True, mutable=False)
    is_realtime_report: bool = Field(type=bool, required=False, mutable=False)
    call_completion_threshold_param: str = Field(type=str, required=False, mutable=False)
    short_duration_threshold_param: str = Field(type=str, required=False, mutable=False)
    service_level_threshold_param: str = Field(type=str, required=False, mutable=False)
    service_level_inclusions_param: str = Field(type=str, required=False, mutable=False)
    service_level_objective_threshold_param: str = Field(
        type=str, required=False, mutable=False,
    )
    abandoned_call_threshold_param: str = Field(type=str, required=False, mutable=False)
    service_level_threshold_param_number: int = Field(type=int, required=False, mutable=False)
    abandoned_call_threshold_param_number: int = Field(
        type=int, required=False, mutable=False,
    )
    filter_value: str = Field(type=str, required=False, mutable=False)


class EnterpriseCallCenterEnhancedReportingReportTemplateModifyRequest(OCIRequest):
    """
    Request to modify an enterprise level call center report template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        new_name: newName
        description: description
        xslt_template: xsltTemplate
        scope: scope
        is_enabled: isEnabled
        is_realtime_report: isRealtimeReport
        filter_number: filterNumber
        filter_value: filterValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("xslt_template", "xsltTemplate", OCI.LabeledFileResource, is_complex=True),
        E("scope", "scope", str),
        E("is_enabled", "isEnabled", bool),
        E("is_realtime_report", "isRealtimeReport", bool),
        E("filter_number", "filterNumber", int),
        E(
            "filter_value", "filterValue",
            OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    xslt_template: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    scope: str = Field(type=str, required=False, mutable=False)
    is_enabled: bool = Field(type=bool, required=False, mutable=False)
    is_realtime_report: bool = Field(type=bool, required=False, mutable=False)
    filter_number: int = Field(type=int, required=False, mutable=False)
    filter_value: "OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList" = Field(
        type=OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
        required=False, mutable=False,
    )


class EnterpriseCallCenterModifyRoutingPolicyRequest(OCIRequest):
    """
    Modify the enterprise call center routing policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        routing_policy: routingPolicy
        routing_priority_order: routingPriorityOrder
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("routing_policy", "routingPolicy", str),
        E(
            "routing_priority_order", "routingPriorityOrder",
            OCI.CallCenterRoutingPriorityOrder, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    routing_policy: str = Field(type=str, required=False, mutable=False)
    routing_priority_order: "List[OCI.CallCenterRoutingPriorityOrder]" = Field(
        type=list, required=False, mutable=False,
    )


class EnterpriseCommonPhoneListAddListRequest(OCIRequest):
    """
    Add one or more entries to an enterprise's common phone list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        entry: entry
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("entry", "entry", OCI.PhoneListEntry, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    entry: "OCI.PhoneListEntry" = Field(type=OCI.PhoneListEntry, required=True, mutable=False)


class EnterpriseCommonPhoneListGetListRequest(OCIRequest):
    """
    Get an enterprise's common phone list.

    The response is either a ``EnterpriseCommonPhoneListGetListResponse()`` or an
    ``ErrorResponse()``. The search can be done using multiple criterion.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterion are included
    in the results.  If no search criteria is specified, all results are returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``. In all cases, if a responseSizeLimit is specified and the number
    of matching results is more than this limit, then an ``ErrorResponse()`` is returned.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_enterprise_common_phone_list_name:
            searchCriteriaEnterpriseCommonPhoneListName
        search_criteria_enterprise_common_phone_list_number:
            searchCriteriaEnterpriseCommonPhoneListNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_enterprise_common_phone_list_name",
            "searchCriteriaEnterpriseCommonPhoneListName",
            OCI.SearchCriteriaEnterpriseCommonPhoneListName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_enterprise_common_phone_list_number",
            "searchCriteriaEnterpriseCommonPhoneListNumber",
            OCI.SearchCriteriaEnterpriseCommonPhoneListNumber, is_complex=True,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_enterprise_common_phone_list_name: "List[OCI.SearchCriteriaEnterpriseCommonPhoneListName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_enterprise_common_phone_list_number: "List[OCI.SearchCriteriaEnterpriseCommonPhoneListNumber]" = Field(
        type=list, required=False, mutable=False,
    )


class EnterpriseDepartmentAddRequest(OCIRequest):
    """
    Add a department to enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        enterprise_id: enterpriseId
        department_name: departmentName
        parent_department_key: parentDepartmentKey
    """

    _ELEMENTS = (
        E("enterprise_id", "enterpriseId", str, is_required=True),
        E("department_name", "departmentName", str, is_required=True),
        E(
            "parent_department_key", "parentDepartmentKey", OCI.EnterpriseDepartmentKey,
            is_complex=True,
        ),
    )

    enterprise_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=True, mutable=False)
    parent_department_key: "OCI.EnterpriseDepartmentKey" = Field(
        type=OCI.EnterpriseDepartmentKey, required=False, mutable=False,
    )


class EnterpriseDepartmentModifyRequest(OCIRequest):
    """
    Modify a department of an enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        enterprise_id: enterpriseId
        department_name: departmentName
        new_department_name: newDepartmentName
        new_parent_department_key: newParentDepartmentKey
    """

    _ELEMENTS = (
        E("enterprise_id", "enterpriseId", str, is_required=True),
        E("department_name", "departmentName", str, is_required=True),
        E("new_department_name", "newDepartmentName", str),
        E(
            "new_parent_department_key", "newParentDepartmentKey",
            OCI.EnterpriseDepartmentKey, is_complex=True,
        ),
    )

    enterprise_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=True, mutable=False)
    new_department_name: str = Field(type=str, required=False, mutable=False)
    new_parent_department_key: "OCI.EnterpriseDepartmentKey" = Field(
        type=OCI.EnterpriseDepartmentKey, required=False, mutable=False,
    )


class EnterpriseEnterpriseTrunkGetAvailableTrunkGroupListRequest(OCIRequest):
    """
    Request to get the list of all available trunk groups defined in an 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
    ``EnterpriseEnterpriseTrunkGetAvailableTrunkGroupListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_trunk_group_name: searchCriteriaTrunkGroupName
        search_criteria_group_id: searchCriteriaGroupId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_trunk_group_name", "searchCriteriaTrunkGroupName",
            OCI.SearchCriteriaTrunkGroupName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_trunk_group_name: "List[OCI.SearchCriteriaTrunkGroupName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )


class EnterpriseSessionAdmissionControlGetAvailableDeviceListRequest(OCIRequest):
    """
    Request to get the list of devices can be assigned to session admission control group
    for the enterprise.

    The response is either an
    ``EnterpriseSessionAdmissionControlGetAvailableDeviceListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_device_mac_address: searchCriteriaDeviceMACAddress
        search_criteria_device_net_address: searchCriteriaDeviceNetAddress
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_device_type: searchCriteriaExactDeviceType
        search_criteria_exact_device_level: searchCriteriaExactDeviceLevel
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_mac_address", "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_net_address", "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_device_type", "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_level", "searchCriteriaExactDeviceLevel",
            OCI.SearchCriteriaExactDeviceLevel, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_mac_address: "List[OCI.SearchCriteriaDeviceMACAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_net_address: "List[OCI.SearchCriteriaDeviceNetAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_device_type: "OCI.SearchCriteriaExactDeviceType" = Field(
        type=OCI.SearchCriteriaExactDeviceType, required=False, mutable=False,
    )
    search_criteria_exact_device_level: "OCI.SearchCriteriaExactDeviceLevel" = Field(
        type=OCI.SearchCriteriaExactDeviceLevel, required=False, mutable=False,
    )


class EnterpriseVirtualOnNetEnterpriseExtensionsGetUserListRequest(OCIRequest):
    """
    Request the list of Virtual On-Net users in an 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
    ``EnterpriseVirtualOnNetEnterpriseExtensionsGetUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_virtual_on_net_call_type_name:
            searchCriteriaExactVirtualOnNetCallTypeName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_virtual_on_net_call_type_name",
            "searchCriteriaExactVirtualOnNetCallTypeName",
            OCI.SearchCriteriaExactVirtualOnNetCallTypeName, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_virtual_on_net_call_type_name: "OCI.SearchCriteriaExactVirtualOnNetCallTypeName" = Field(
        type=OCI.SearchCriteriaExactVirtualOnNetCallTypeName, required=False,
        mutable=False,
    )


class EnterpriseVoiceVPNAddPolicyRequest(OCIRequest):
    """
    Add the enterprise level data associated with a Voice VPN location code.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        location_dialing_code: locationDialingCode
        min_extension_length: minExtensionLength
        max_extension_length: maxExtensionLength
        description: description
        route_group_id: routeGroupId
        policy_selection: policySelection
        digit_manipulation: digitManipulation
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("location_dialing_code", "locationDialingCode", str, is_required=True),
        E("min_extension_length", "minExtensionLength", int, is_required=True),
        E("max_extension_length", "maxExtensionLength", int, is_required=True),
        E("description", "description", str),
        E("route_group_id", "routeGroupId", str),
        E("policy_selection", "policySelection", str, is_required=True),
        E(
            "digit_manipulation", "digitManipulation",
            OCI.EnterpriseVoiceVPNDigitManipulation, is_complex=True,
        ),
        E("treatment_id", "treatmentId", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    location_dialing_code: str = Field(type=str, required=True, mutable=False)
    min_extension_length: int = Field(type=int, required=True, mutable=False)
    max_extension_length: int = Field(type=int, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    route_group_id: str = Field(type=str, required=False, mutable=False)
    policy_selection: str = Field(type=str, required=True, mutable=False)
    digit_manipulation: "OCI.EnterpriseVoiceVPNDigitManipulation" = Field(
        type=OCI.EnterpriseVoiceVPNDigitManipulation, required=False, mutable=False,
    )
    treatment_id: str = Field(type=str, required=False, mutable=False)


class EnterpriseVoiceVPNGetPolicyListRequest(OCIRequest):
    """
    Request the list of Voice VPN locations.

    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 ``EnterpriseVoiceVPNGetPolicyListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_exact_policy_selection: searchCriteriaExactPolicySelection
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_policy_selection",
            "searchCriteriaExactPolicySelection", OCI.SearchCriteriaExactPolicySelection,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_policy_selection: "OCI.SearchCriteriaExactPolicySelection" = Field(
        type=OCI.SearchCriteriaExactPolicySelection, required=False, mutable=False,
    )


class EnterpriseVoiceVPNModifyPolicyRequest(OCIRequest):
    """
    Modify the enterprise level data associated with a Voice VPN location code.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        location_dialing_code: locationDialingCode
        min_extension_length: minExtensionLength
        max_extension_length: maxExtensionLength
        description: description
        route_group_id: routeGroupId
        policy_selection: policySelection
        digit_manipulation: digitManipulation
        treatment_id: treatmentId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("location_dialing_code", "locationDialingCode", str, is_required=True),
        E("min_extension_length", "minExtensionLength", int),
        E("max_extension_length", "maxExtensionLength", int),
        E("description", "description", str),
        E("route_group_id", "routeGroupId", str),
        E("policy_selection", "policySelection", str),
        E(
            "digit_manipulation", "digitManipulation",
            OCI.EnterpriseVoiceVPNDigitManipulation, is_complex=True,
        ),
        E("treatment_id", "treatmentId", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    location_dialing_code: str = Field(type=str, required=True, mutable=False)
    min_extension_length: int = Field(type=int, required=False, mutable=False)
    max_extension_length: int = Field(type=int, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    route_group_id: str = Field(type=str, required=False, mutable=False)
    policy_selection: str = Field(type=str, required=False, mutable=False)
    digit_manipulation: "OCI.EnterpriseVoiceVPNDigitManipulation" = Field(
        type=OCI.EnterpriseVoiceVPNDigitManipulation, required=False, mutable=False,
    )
    treatment_id: str = Field(type=str, required=False, mutable=False)


class GroupAccessDeviceAddRequest14(OCIRequest):
    """
    Request to add a group access device.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        device_type: deviceType
        protocol: protocol
        net_address: netAddress
        port: port
        outbound_proxy_server_net_address: outboundProxyServerNetAddress
        stun_server_net_address: stunServerNetAddress
        mac_address: macAddress
        serial_number: serialNumber
        description: description
        physical_location: physicalLocation
        transport_protocol: transportProtocol
        mobility_manager_provisioning_url: mobilityManagerProvisioningURL
        mobility_manager_provisioning_user_name: mobilityManagerProvisioningUserName
        mobility_manager_provisioning_password: mobilityManagerProvisioningPassword
        mobility_manager_default_originating_service_key:
            mobilityManagerDefaultOriginatingServiceKey
        mobility_manager_default_terminating_service_key:
            mobilityManagerDefaultTerminatingServiceKey
        use_custom_user_name_password: useCustomUserNamePassword
        access_device_credentials: accessDeviceCredentials
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("protocol", "protocol", str),
        E("net_address", "netAddress", str),
        E("port", "port", int),
        E("outbound_proxy_server_net_address", "outboundProxyServerNetAddress", str),
        E("stun_server_net_address", "stunServerNetAddress", str),
        E("mac_address", "macAddress", str),
        E("serial_number", "serialNumber", str),
        E("description", "description", str),
        E("physical_location", "physicalLocation", str),
        E("transport_protocol", "transportProtocol", str),
        E("mobility_manager_provisioning_url", "mobilityManagerProvisioningURL", str),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName", str,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword", str,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey", int,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey", int,
        ),
        E("use_custom_user_name_password", "useCustomUserNamePassword", bool),
        E(
            "access_device_credentials", "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    protocol: str = Field(type=str, required=False, mutable=False)
    net_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    outbound_proxy_server_net_address: str = Field(type=str, required=False, mutable=False)
    stun_server_net_address: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    serial_number: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    physical_location: str = Field(type=str, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_url: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_user_name: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_provisioning_password: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_default_originating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    mobility_manager_default_terminating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    use_custom_user_name_password: bool = Field(type=bool, required=False, mutable=False)
    access_device_credentials: "OCI.DeviceManagementUserNamePassword16" = Field(
        type=OCI.DeviceManagementUserNamePassword16, required=False, mutable=False,
    )


class GroupAccessDeviceAvailablePortGetListRequest(OCIRequest):
    """
    Request to get the list of available ports in a device.

    The response is either ``GroupAccessDeviceAvailablePortGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        access_device: accessDevice
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "access_device", "accessDevice", OCI.AccessDevice, is_complex=True,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=True, mutable=False,
    )


class GroupAccessDeviceFileModifyRequest(OCIRequest):
    """
    Request to modify a specified group access device file.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupAccessDeviceFileModifyRequest14sp8()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        file_type: fileType
        file_source: fileSource
        upload_file: uploadFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )


class GroupAccessDeviceFileModifyRequest14sp8(OCIRequest):
    """
    Request to modify a specified group access device file.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: extendedCaptureEnabled

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        file_format: fileFormat
        file_source: fileSource
        upload_file: uploadFile
        extended_capture_enabled: extendedCaptureEnabled
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E("extended_capture_enabled", "extendedCaptureEnabled", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    extended_capture_enabled: bool = Field(type=bool, required=False, mutable=False)


class GroupAccessDeviceGetListRequest(OCIRequest):
    """
    Requests the list of access devices in a group.

    The response is either ``GroupAccessDeviceGetListResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_device_mac_address: searchCriteriaDeviceMACAddress
        search_criteria_device_net_address: searchCriteriaDeviceNetAddress
        search_criteria_exact_device_type: searchCriteriaExactDeviceType
        search_criteria_access_device_version: searchCriteriaAccessDeviceVersion
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_mac_address", "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_net_address", "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_device_type", "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType, is_complex=True,
        ),
        E(
            "search_criteria_access_device_version", "searchCriteriaAccessDeviceVersion",
            OCI.SearchCriteriaAccessDeviceVersion, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_mac_address: "List[OCI.SearchCriteriaDeviceMACAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_net_address: "List[OCI.SearchCriteriaDeviceNetAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_device_type: "OCI.SearchCriteriaExactDeviceType" = Field(
        type=OCI.SearchCriteriaExactDeviceType, required=False, mutable=False,
    )
    search_criteria_access_device_version: "List[OCI.SearchCriteriaAccessDeviceVersion]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupAccessDeviceModifyRequest14(OCIRequest):
    """
    Request to modify a specified group access device.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        protocol: protocol
        net_address: netAddress
        port: port
        outbound_proxy_server_net_address: outboundProxyServerNetAddress
        stun_server_net_address: stunServerNetAddress
        mac_address: macAddress
        serial_number: serialNumber
        description: description
        configuration_mode: configurationMode
        configuration_file: configurationFile
        physical_location: physicalLocation
        transport_protocol: transportProtocol
        mobility_manager_provisioning_url: mobilityManagerProvisioningURL
        mobility_manager_provisioning_user_name: mobilityManagerProvisioningUserName
        mobility_manager_provisioning_password: mobilityManagerProvisioningPassword
        mobility_manager_default_originating_service_key:
            mobilityManagerDefaultOriginatingServiceKey
        mobility_manager_default_terminating_service_key:
            mobilityManagerDefaultTerminatingServiceKey
        use_custom_user_name_password: useCustomUserNamePassword
        access_device_credentials: accessDeviceCredentials
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("protocol", "protocol", str),
        E("net_address", "netAddress", str),
        E("port", "port", int),
        E("outbound_proxy_server_net_address", "outboundProxyServerNetAddress", str),
        E("stun_server_net_address", "stunServerNetAddress", str),
        E("mac_address", "macAddress", str),
        E("serial_number", "serialNumber", str),
        E("description", "description", str),
        E("configuration_mode", "configurationMode", str),
        E("configuration_file", "configurationFile", OCI.FileResource, is_complex=True),
        E("physical_location", "physicalLocation", str),
        E("transport_protocol", "transportProtocol", str),
        E("mobility_manager_provisioning_url", "mobilityManagerProvisioningURL", str),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName", str,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword", str,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey", int,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey", int,
        ),
        E("use_custom_user_name_password", "useCustomUserNamePassword", bool),
        E(
            "access_device_credentials", "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    protocol: str = Field(type=str, required=False, mutable=False)
    net_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    outbound_proxy_server_net_address: str = Field(type=str, required=False, mutable=False)
    stun_server_net_address: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    serial_number: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    configuration_mode: str = Field(type=str, required=False, mutable=False)
    configuration_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    physical_location: str = Field(type=str, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_url: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_user_name: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_provisioning_password: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_default_originating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    mobility_manager_default_terminating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    use_custom_user_name_password: bool = Field(type=bool, required=False, mutable=False)
    access_device_credentials: "OCI.DeviceManagementUserNamePassword16" = Field(
        type=OCI.DeviceManagementUserNamePassword16, required=False, mutable=False,
    )


class GroupAccountAuthorizationCodesAddListRequest(OCIRequest):
    """
    Add a list of account/authorization codes to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code_entry: codeEntry
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "code_entry", "codeEntry", OCI.AccountAuthorizationCodeEntry, is_complex=True,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code_entry: "OCI.AccountAuthorizationCodeEntry" = Field(
        type=OCI.AccountAuthorizationCodeEntry, required=True, mutable=False,
    )


class GroupAccountAuthorizationCodesModifyRequest(OCIRequest):
    """
    Change the group's account/authorization codes setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code_type: codeType
        number_of_digits: numberOfDigits
        allow_local_and_toll_free_calls: allowLocalAndTollFreeCalls
        mandatory_usage_user_id_list: mandatoryUsageUserIdList
        optional_usage_user_id_list: optionalUsageUserIdList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("code_type", "codeType", str),
        E("number_of_digits", "numberOfDigits", int),
        E("allow_local_and_toll_free_calls", "allowLocalAndTollFreeCalls", bool),
        E(
            "mandatory_usage_user_id_list", "mandatoryUsageUserIdList",
            OCI.ReplacementUserIdList, is_complex=True,
        ),
        E(
            "optional_usage_user_id_list", "optionalUsageUserIdList",
            OCI.ReplacementUserIdList, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code_type: str = Field(type=str, required=False, mutable=False)
    number_of_digits: int = Field(type=int, required=False, mutable=False)
    allow_local_and_toll_free_calls: bool = Field(type=bool, required=False, mutable=False)
    mandatory_usage_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    optional_usage_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupAddRequest(OCIRequest):
    """
    Add a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        default_domain: defaultDomain
        user_limit: userLimit
        group_name: groupName
        calling_line_id_name: callingLineIdName
        time_zone: timeZone
        location_dialing_code: locationDialingCode
        contact: contact
        address: address
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("default_domain", "defaultDomain", str, is_required=True),
        E("user_limit", "userLimit", int, is_required=True),
        E("group_name", "groupName", str),
        E("calling_line_id_name", "callingLineIdName", str),
        E("time_zone", "timeZone", str),
        E("location_dialing_code", "locationDialingCode", str),
        E("contact", "contact", OCI.Contact, is_complex=True),
        E("address", "address", OCI.StreetAddress, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    default_domain: str = Field(type=str, required=True, mutable=False)
    user_limit: int = Field(type=int, required=True, mutable=False)
    group_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_name: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    location_dialing_code: str = Field(type=str, required=False, mutable=False)
    contact: "OCI.Contact" = Field(type=OCI.Contact, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )


class GroupAnnouncementFileAddRequest(OCIRequest):
    """
    Add an announcement to the group announcement repository The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        announcement_file_name: announcementFileName
        announcement_file: announcementFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("announcement_file_name", "announcementFileName", str, is_required=True),
        E(
            "announcement_file", "announcementFile", OCI.LabeledMediaFileResource,
            is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_name: str = Field(type=str, required=True, mutable=False)
    announcement_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=True, mutable=False,
    )


class GroupAnnouncementFileDeleteListRequest(OCIRequest):
    """
    Delete one or more announcements from the group announcement repository The response
    is either a ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        announcement_file_key: announcementFileKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "announcement_file_key", "announcementFileKey", OCI.AnnouncementFileKey,
            is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_key: "OCI.AnnouncementFileKey" = Field(
        type=OCI.AnnouncementFileKey, required=True, mutable=False,
    )


class GroupAnnouncementFileGetListRequest(OCIRequest):
    """
    Get the list of available announcement files for a Group.

    The response is either a ``GroupAnnouncementFileGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        announcement_file_type: announcementFileType
        include_announcement_table: includeAnnouncementTable
        response_size_limit: responseSizeLimit
        search_criteria_announcement_file_name: searchCriteriaAnnouncementFileName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("announcement_file_type", "announcementFileType", str),
        E("include_announcement_table", "includeAnnouncementTable", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_announcement_file_name",
            "searchCriteriaAnnouncementFileName", OCI.SearchCriteriaAnnouncementFileName,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_type: str = Field(type=str, required=False, mutable=False)
    include_announcement_table: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_announcement_file_name: "List[OCI.SearchCriteriaAnnouncementFileName]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupAnnouncementFileGetRequest(OCIRequest):
    """
    Request to get the announcement repository file information.

    The response is either ``GroupAnnouncementFileGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        announcement_file_key: announcementFileKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "announcement_file_key", "announcementFileKey", OCI.AnnouncementFileKey,
            is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_key: "OCI.AnnouncementFileKey" = Field(
        type=OCI.AnnouncementFileKey, required=True, mutable=False,
    )


class GroupAnnouncementFileModifyRequest(OCIRequest):
    """
    Modify an existing announcement in the group repository The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        announcement_file_key: announcementFileKey
        new_announcement_file_name: newAnnouncementFileName
        announcement_file: announcementFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "announcement_file_key", "announcementFileKey", OCI.AnnouncementFileKey,
            is_complex=True, is_required=True,
        ),
        E("new_announcement_file_name", "newAnnouncementFileName", str),
        E(
            "announcement_file", "announcementFile", OCI.LabeledMediaFileResource,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_key: "OCI.AnnouncementFileKey" = Field(
        type=OCI.AnnouncementFileKey, required=True, mutable=False,
    )
    new_announcement_file_name: str = Field(type=str, required=False, mutable=False)
    announcement_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )


class GroupAutoAttendantModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Auto Attendant instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupBroadWorksAnywhereModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of BroadWorks Anywhere instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCPEConfigSetConfigFileRequest(OCIRequest):
    """
    Request to set a new group default configuration file for a device type.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        config_file: configFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("config_file", "configFile", OCI.FileResource, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    config_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=True, mutable=False,
    )


class GroupCallCapacityManagementModifyInstanceRequest(OCIRequest):
    """
    Modifies a Call Capacity Management group.

    Replaces the entire list of users in the group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        max_active_calls_allowed: maxActiveCallsAllowed
        max_incoming_active_calls_allowed: maxIncomingActiveCallsAllowed
        max_outgoing_active_calls_allowed: maxOutgoingActiveCallsAllowed
        become_default_group_for_new_users: becomeDefaultGroupForNewUsers
        user_id_list: userIdList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("max_active_calls_allowed", "maxActiveCallsAllowed", int),
        E("max_incoming_active_calls_allowed", "maxIncomingActiveCallsAllowed", int),
        E("max_outgoing_active_calls_allowed", "maxOutgoingActiveCallsAllowed", int),
        E("become_default_group_for_new_users", "becomeDefaultGroupForNewUsers", bool),
        E("user_id_list", "userIdList", OCI.ReplacementUserIdList, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    max_active_calls_allowed: int = Field(type=int, required=False, mutable=False)
    max_incoming_active_calls_allowed: int = Field(type=int, required=False, mutable=False)
    max_outgoing_active_calls_allowed: int = Field(type=int, required=False, mutable=False)
    become_default_group_for_new_users: bool = Field(type=bool, required=False, mutable=False)
    user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupCallCenterAddAgentListRequest(OCIRequest):
    """
    Add agent(s) to a call center.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. If the skill
    level is not present for skill based premium call centers, the users will be set to
    skill level 1.

    Attributes:
        service_user_id: serviceUserId
        agent_user_id: agentUserId
        agent_skill_list: agentSkillList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("agent_user_id", "agentUserId", str),
        E(
            "agent_skill_list", "agentSkillList", OCI.CallCenterSkillAgentList,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    agent_user_id: str = Field(type=str, required=False, mutable=False)
    agent_skill_list: "OCI.CallCenterSkillAgentList" = Field(
        type=OCI.CallCenterSkillAgentList, required=False, mutable=False,
    )


class GroupCallCenterAddDNISRequest(OCIRequest):
    """
    Add a Call Center DNIS The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.


    Attributes:
        dnis_key: dnisKey
        dnis_phone_number: dnisPhoneNumber
        extension: extension
        use_custom_clid_settings: useCustomCLIDSettings
        calling_line_id_phone_number: callingLineIdPhoneNumber
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        use_custom_dnis_announcement_settings: useCustomDnisAnnouncementSettings
        priority: priority
        allow_outgoing_acd_call: allowOutgoingACDCall
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
        E("dnis_phone_number", "dnisPhoneNumber", str),
        E("extension", "extension", str),
        E("use_custom_clid_settings", "useCustomCLIDSettings", bool, is_required=True),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("calling_line_id_last_name", "callingLineIdLastName", str),
        E("calling_line_id_first_name", "callingLineIdFirstName", str),
        E(
            "use_custom_dnis_announcement_settings", "useCustomDnisAnnouncementSettings",
            bool, is_required=True,
        ),
        E("priority", "priority", str, is_required=True),
        E("allow_outgoing_acd_call", "allowOutgoingACDCall", bool, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)
    dnis_phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    use_custom_clid_settings: bool = Field(type=bool, required=True, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=False, mutable=False)
    use_custom_dnis_announcement_settings: bool = Field(
        type=bool, required=True, mutable=False,
    )
    priority: str = Field(type=str, required=True, mutable=False)
    allow_outgoing_acd_call: bool = Field(type=bool, required=True, mutable=False)


class GroupCallCenterAgentThresholdProfileModifyRequest(OCIRequest):
    """
    Modifies an existing Call Center Agent Threshold Profile in the Group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        profile_name: profileName
        new_profile_name: newProfileName
        profile_description: profileDescription
        threshold_current_call_state_idle_time_yellow:
            thresholdCurrentCallStateIdleTimeYellow
        threshold_current_call_state_idle_time_red: thresholdCurrentCallStateIdleTimeRed
        threshold_current_call_state_on_call_time_yellow:
            thresholdCurrentCallStateOnCallTimeYellow
        threshold_current_call_state_on_call_time_red:
            thresholdCurrentCallStateOnCallTimeRed
        threshold_current_agent_state_unavailable_time_yellow:
            thresholdCurrentAgentStateUnavailableTimeYellow
        threshold_current_agent_state_unavailable_time_red:
            thresholdCurrentAgentStateUnavailableTimeRed
        threshold_average_busy_in_time_yellow: thresholdAverageBusyInTimeYellow
        threshold_average_busy_in_time_red: thresholdAverageBusyInTimeRed
        threshold_average_busy_out_time_yellow: thresholdAverageBusyOutTimeYellow
        threshold_average_busy_out_time_red: thresholdAverageBusyOutTimeRed
        threshold_average_wrap_up_time_yellow: thresholdAverageWrapUpTimeYellow
        threshold_average_wrap_up_time_red: thresholdAverageWrapUpTimeRed
        enable_notification_email: enableNotificationEmail
        notification_email_address_list: notificationEmailAddressList
        agent_user_id_list: agentUserIdList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("profile_name", "profileName", str, is_required=True),
        E("new_profile_name", "newProfileName", str),
        E("profile_description", "profileDescription", str),
        E(
            "threshold_current_call_state_idle_time_yellow",
            "thresholdCurrentCallStateIdleTimeYellow", int,
        ),
        E(
            "threshold_current_call_state_idle_time_red",
            "thresholdCurrentCallStateIdleTimeRed", int,
        ),
        E(
            "threshold_current_call_state_on_call_time_yellow",
            "thresholdCurrentCallStateOnCallTimeYellow", int,
        ),
        E(
            "threshold_current_call_state_on_call_time_red",
            "thresholdCurrentCallStateOnCallTimeRed", int,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_yellow",
            "thresholdCurrentAgentStateUnavailableTimeYellow", int,
        ),
        E(
            "threshold_current_agent_state_unavailable_time_red",
            "thresholdCurrentAgentStateUnavailableTimeRed", int,
        ),
        E("threshold_average_busy_in_time_yellow", "thresholdAverageBusyInTimeYellow", int),
        E("threshold_average_busy_in_time_red", "thresholdAverageBusyInTimeRed", int),
        E("threshold_average_busy_out_time_yellow", "thresholdAverageBusyOutTimeYellow", int),
        E("threshold_average_busy_out_time_red", "thresholdAverageBusyOutTimeRed", int),
        E("threshold_average_wrap_up_time_yellow", "thresholdAverageWrapUpTimeYellow", int),
        E("threshold_average_wrap_up_time_red", "thresholdAverageWrapUpTimeRed", int),
        E("enable_notification_email", "enableNotificationEmail", bool),
        E(
            "notification_email_address_list", "notificationEmailAddressList",
            OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList,
            is_complex=True,
        ),
        E(
            "agent_user_id_list", "agentUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    profile_name: str = Field(type=str, required=True, mutable=False)
    new_profile_name: str = Field(type=str, required=False, mutable=False)
    profile_description: str = Field(type=str, required=False, mutable=False)
    threshold_current_call_state_idle_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_idle_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_on_call_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_call_state_on_call_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_agent_state_unavailable_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_agent_state_unavailable_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_in_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_in_time_red: int = Field(type=int, required=False, mutable=False)
    threshold_average_busy_out_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_busy_out_time_red: int = Field(type=int, required=False, mutable=False)
    threshold_average_wrap_up_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_wrap_up_time_red: int = Field(type=int, required=False, mutable=False)
    enable_notification_email: bool = Field(type=bool, required=False, mutable=False)
    notification_email_address_list: "OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList" = Field(
        type=OCI.CallCenterAgentThresholdProfileReplacementNotificationEmailList,
        required=False, mutable=False,
    )
    agent_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupCallCenterAgentUnavailableCodeSettingsModifyRequest(OCIRequest):
    """
    Modify the group level data associated with Call Center Agents Unavailable Code
    Settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enable_agent_unavailable_codes: enableAgentUnavailableCodes
        default_agent_unavailable_code_on_dnd: defaultAgentUnavailableCodeOnDND
        default_agent_unavailable_code_on_personal_calls:
            defaultAgentUnavailableCodeOnPersonalCalls
        default_agent_unavailable_code_on_consecutive_bounces:
            defaultAgentUnavailableCodeOnConsecutiveBounces
        default_agent_unavailable_code_on_not_reachable:
            defaultAgentUnavailableCodeOnNotReachable
        force_use_of_agent_unavailable_codes: forceUseOfAgentUnavailableCodes
        default_agent_unavailable_code: defaultAgentUnavailableCode
        code_state_list: codeStateList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enable_agent_unavailable_codes", "enableAgentUnavailableCodes", bool),
        E("default_agent_unavailable_code_on_dnd", "defaultAgentUnavailableCodeOnDND", str),
        E(
            "default_agent_unavailable_code_on_personal_calls",
            "defaultAgentUnavailableCodeOnPersonalCalls", str,
        ),
        E(
            "default_agent_unavailable_code_on_consecutive_bounces",
            "defaultAgentUnavailableCodeOnConsecutiveBounces", str,
        ),
        E(
            "default_agent_unavailable_code_on_not_reachable",
            "defaultAgentUnavailableCodeOnNotReachable", str,
        ),
        E("force_use_of_agent_unavailable_codes", "forceUseOfAgentUnavailableCodes", bool),
        E("default_agent_unavailable_code", "defaultAgentUnavailableCode", str),
        E(
            "code_state_list", "codeStateList",
            OCI.CallCenterAgentUnavailableCodeStateModify, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enable_agent_unavailable_codes: bool = Field(type=bool, required=False, mutable=False)
    default_agent_unavailable_code_on_dnd: str = Field(
        type=str, required=False, mutable=False,
    )
    default_agent_unavailable_code_on_personal_calls: str = Field(
        type=str, required=False, mutable=False,
    )
    default_agent_unavailable_code_on_consecutive_bounces: str = Field(
        type=str, required=False, mutable=False,
    )
    default_agent_unavailable_code_on_not_reachable: str = Field(
        type=str, required=False, mutable=False,
    )
    force_use_of_agent_unavailable_codes: bool = Field(
        type=bool, required=False, mutable=False,
    )
    default_agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    code_state_list: "OCI.CallCenterAgentUnavailableCodeStateModify" = Field(
        type=OCI.CallCenterAgentUnavailableCodeStateModify, required=False, mutable=False,
    )


class GroupCallCenterCallDispositionCodeModifyActiveListRequest(OCIRequest):
    """
    Request to set the active status of Call Center Call Disposition Codes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        call_disposition_code_activation: callDispositionCodeActivation
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "call_disposition_code_activation", "callDispositionCodeActivation",
            OCI.CallDispositionCodeActivation, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    call_disposition_code_activation: "OCI.CallDispositionCodeActivation" = Field(
        type=OCI.CallDispositionCodeActivation, required=False, mutable=False,
    )


class GroupCallCenterCurrentAndPastAgentGetListRequest(OCIRequest):
    """
    Request to get all the current and past agents for the group.

    The response is either ``GroupCallCenterCurrentAndPastAgentGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterCurrentAndPastCallCenterGetListRequest(OCIRequest):
    """
    Request to get all the current and past call centers for the group.

    The response is either ``GroupCallCenterCurrentAndPastCallCenterGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        is_premium_only: isPremiumOnly
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_call_center_name: searchCriteriaCallCenterName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("is_premium_only", "isPremiumOnly", bool),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_name", "searchCriteriaCallCenterName",
            OCI.SearchCriteriaCallCenterName, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    is_premium_only: bool = Field(type=bool, required=False, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_name: "OCI.SearchCriteriaCallCenterName" = Field(
        type=OCI.SearchCriteriaCallCenterName, required=False, mutable=False,
    )


class GroupCallCenterDeleteDNISRequest(OCIRequest):
    """
    Delete a call center's DNIS.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupCallCenterEnhancedReportingBrandingModifyRequest(OCIRequest):
    """
    Request to modify the group branding configuration.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        branding_choice: brandingChoice
        branding_file: brandingFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("branding_choice", "brandingChoice", str),
        E("branding_file", "brandingFile", OCI.LabeledFileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    branding_choice: str = Field(type=str, required=False, mutable=False)
    branding_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class GroupCallCenterEnhancedReportingReportTemplateAddRequest(OCIRequest):
    """
    Request to add a group level call center report template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        description: description
        data_template: dataTemplate
        filter_number: filterNumber
        xslt_template: xsltTemplate
        scope: scope
        is_enabled: isEnabled
        is_realtime_report: isRealtimeReport
        call_completion_threshold_param: callCompletionThresholdParam
        short_duration_threshold_param: shortDurationThresholdParam
        service_level_threshold_param: serviceLevelThresholdParam
        service_level_inclusions_param: serviceLevelInclusionsParam
        service_level_objective_threshold_param: serviceLevelObjectiveThresholdParam
        abandoned_call_threshold_param: abandonedCallThresholdParam
        service_level_threshold_param_number: serviceLevelThresholdParamNumber
        abandoned_call_threshold_param_number: abandonedCallThresholdParamNumber
        filter_value: filterValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("data_template", "dataTemplate", str, is_required=True),
        E("filter_number", "filterNumber", int),
        E(
            "xslt_template", "xsltTemplate", OCI.LabeledFileResource, is_complex=True,
            is_required=True,
        ),
        E("scope", "scope", str, is_required=True),
        E("is_enabled", "isEnabled", bool, is_required=True),
        E("is_realtime_report", "isRealtimeReport", bool),
        E("call_completion_threshold_param", "callCompletionThresholdParam", str),
        E("short_duration_threshold_param", "shortDurationThresholdParam", str),
        E("service_level_threshold_param", "serviceLevelThresholdParam", str),
        E("service_level_inclusions_param", "serviceLevelInclusionsParam", str),
        E(
            "service_level_objective_threshold_param",
            "serviceLevelObjectiveThresholdParam", str,
        ),
        E("abandoned_call_threshold_param", "abandonedCallThresholdParam", str),
        E("service_level_threshold_param_number", "serviceLevelThresholdParamNumber", int),
        E("abandoned_call_threshold_param_number", "abandonedCallThresholdParamNumber", int),
        E("filter_value", "filterValue", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    data_template: str = Field(type=str, required=True, mutable=False)
    filter_number: int = Field(type=int, required=False, mutable=False)
    xslt_template: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=True, mutable=False,
    )
    scope: str = Field(type=str, required=True, mutable=False)
    is_enabled: bool = Field(type=bool, required=True, mutable=False)
    is_realtime_report: bool = Field(type=bool, required=False, mutable=False)
    call_completion_threshold_param: str = Field(type=str, required=False, mutable=False)
    short_duration_threshold_param: str = Field(type=str, required=False, mutable=False)
    service_level_threshold_param: str = Field(type=str, required=False, mutable=False)
    service_level_inclusions_param: str = Field(type=str, required=False, mutable=False)
    service_level_objective_threshold_param: str = Field(
        type=str, required=False, mutable=False,
    )
    abandoned_call_threshold_param: str = Field(type=str, required=False, mutable=False)
    service_level_threshold_param_number: int = Field(type=int, required=False, mutable=False)
    abandoned_call_threshold_param_number: int = Field(
        type=int, required=False, mutable=False,
    )
    filter_value: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterEnhancedReportingReportTemplateModifyRequest(OCIRequest):
    """
    Request to modify a group level call center report template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        description: description
        xslt_template: xsltTemplate
        scope: scope
        is_enabled: isEnabled
        is_realtime_report: isRealtimeReport
        filter_number: filterNumber
        filter_value: filterValue
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("xslt_template", "xsltTemplate", OCI.LabeledFileResource, is_complex=True),
        E("scope", "scope", str),
        E("is_enabled", "isEnabled", bool),
        E("is_realtime_report", "isRealtimeReport", bool),
        E("filter_number", "filterNumber", int),
        E(
            "filter_value", "filterValue",
            OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    xslt_template: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    scope: str = Field(type=str, required=False, mutable=False)
    is_enabled: bool = Field(type=bool, required=False, mutable=False)
    is_realtime_report: bool = Field(type=bool, required=False, mutable=False)
    filter_number: int = Field(type=int, required=False, mutable=False)
    filter_value: "OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList" = Field(
        type=OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
        required=False, mutable=False,
    )


class GroupCallCenterGetDNISAgentListRequest(OCIRequest):
    """
    Get a list of agent who selected the DNIS as the outgoing call.

    The response is either ``GroupCallCenterGetDNISAgentListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupCallCenterGetDNISAnnouncementRequest(OCIRequest):
    """
    Get a call center's DNIS Announcements The response is either a
    ``GroupCallCenterGetDNISAnnouncementRequest()`` or an ``ErrorResponse()``.

    Replaced by ``GroupCallCenterGetDNISAnnouncementRequest17sp4()``

    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupCallCenterGetDNISAnnouncementRequest17sp4(OCIRequest):
    """
    Get a call center's DNIS Announcements The response is either a
    ``GroupCallCenterGetDNISAnnouncementRequest17sp4()`` or an ``ErrorResponse()``.

    Replaced by: ``GroupCallCenterGetDNISAnnouncementRequest19()``.

    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupCallCenterGetDNISAnnouncementRequest19(OCIRequest):
    """
    Get a call center's DNIS Announcements The response is either a
    ``GroupCallCenterGetDNISAnnouncementRequest19()`` or an ``ErrorResponse()``.


    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupCallCenterGetDNISAnnouncementRequest20(OCIRequest):
    """
    Get a call center's DNIS Announcements The response is either a
    ``GroupCallCenterGetDNISAnnouncementRequest20()`` or an ``ErrorResponse()``.


    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupCallCenterGetDNISRequest(OCIRequest):
    """
    Get a call center's DNIS.

    The response is either a ``GroupCallCenterGetDNISRequest()`` or an
    ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupCallCenterGetInstanceStatisticsRequest14sp9(OCIRequest):
    """
    Get Call Center queue and agent statistics.

    The response is either ``GroupCallCenterGetInstanceStatisticsResponse14sp9()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        statistics_range: statisticsRange
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "statistics_range", "statisticsRange", OCI.CallCenterStatisticsRange,
            is_complex=True, is_required=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    statistics_range: "OCI.CallCenterStatisticsRange" = Field(
        type=OCI.CallCenterStatisticsRange, required=True, mutable=False,
    )


class GroupCallCenterModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Call Center instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterModifyAnnouncementRequest(OCIRequest):
    """
    Modify a call center's announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        entrance_message_selection: entranceMessageSelection
        entrance_message_audio_file: entranceMessageAudioFile
        entrance_message_video_file: entranceMessageVideoFile
        periodic_comfort_message_selection: periodicComfortMessageSelection
        periodic_comfort_message_audio_file: periodicComfortMessageAudioFile
        periodic_comfort_message_video_file: periodicComfortMessageVideoFile
        on_hold_message_selection: onHoldMessageSelection
        on_hold_message_audio_file: onHoldMessageAudioFile
        on_hold_message_video_file: onHoldMessageVideoFile
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("entrance_message_selection", "entranceMessageSelection", str),
        E(
            "entrance_message_audio_file", "entranceMessageAudioFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E(
            "entrance_message_video_file", "entranceMessageVideoFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E("periodic_comfort_message_selection", "periodicComfortMessageSelection", str),
        E(
            "periodic_comfort_message_audio_file", "periodicComfortMessageAudioFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E(
            "periodic_comfort_message_video_file", "periodicComfortMessageVideoFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E("on_hold_message_selection", "onHoldMessageSelection", str),
        E(
            "on_hold_message_audio_file", "onHoldMessageAudioFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E(
            "on_hold_message_video_file", "onHoldMessageVideoFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    entrance_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    entrance_message_video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    periodic_comfort_message_selection: str = Field(type=str, required=False, mutable=False)
    periodic_comfort_message_audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    periodic_comfort_message_video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    on_hold_message_selection: str = Field(type=str, required=False, mutable=False)
    on_hold_message_audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    on_hold_message_video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class GroupCallCenterModifyAnnouncementRequest14sp6(OCIRequest):
    """
    Modify a call center's announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterModifyAnnouncementRequest16()``

    Attributes:
        service_user_id: serviceUserId
        entrance_message_selection: entranceMessageSelection
        entrance_message_audio_file: entranceMessageAudioFile
        entrance_message_video_file: entranceMessageVideoFile
        periodic_comfort_message_selection: periodicComfortMessageSelection
        periodic_comfort_message_audio_file: periodicComfortMessageAudioFile
        periodic_comfort_message_video_file: periodicComfortMessageVideoFile
        on_hold_source: onHoldSource
        on_hold_use_alternate_source_for_internal_calls:
            onHoldUseAlternateSourceForInternalCalls
        on_hold_internal_source: onHoldInternalSource
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("entrance_message_selection", "entranceMessageSelection", str),
        E(
            "entrance_message_audio_file", "entranceMessageAudioFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E(
            "entrance_message_video_file", "entranceMessageVideoFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E("periodic_comfort_message_selection", "periodicComfortMessageSelection", str),
        E(
            "periodic_comfort_message_audio_file", "periodicComfortMessageAudioFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E(
            "periodic_comfort_message_video_file", "periodicComfortMessageVideoFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E(
            "on_hold_source", "onHoldSource", OCI.CallCenterMusicOnHoldSourceModify,
            is_complex=True,
        ),
        E(
            "on_hold_use_alternate_source_for_internal_calls",
            "onHoldUseAlternateSourceForInternalCalls", bool,
        ),
        E(
            "on_hold_internal_source", "onHoldInternalSource",
            OCI.CallCenterMusicOnHoldSourceModify, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    entrance_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    entrance_message_video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    periodic_comfort_message_selection: str = Field(type=str, required=False, mutable=False)
    periodic_comfort_message_audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    periodic_comfort_message_video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    on_hold_source: "OCI.CallCenterMusicOnHoldSourceModify" = Field(
        type=OCI.CallCenterMusicOnHoldSourceModify, required=False, mutable=False,
    )
    on_hold_use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    on_hold_internal_source: "OCI.CallCenterMusicOnHoldSourceModify" = Field(
        type=OCI.CallCenterMusicOnHoldSourceModify, required=False, mutable=False,
    )


class GroupCallCenterModifyDNISRequest(OCIRequest):
    """
    Modify a call center's DNIS settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
        new_dnis_name: newDNISName
        dnis_phone_number: dnisPhoneNumber
        extension: extension
        use_custom_clid_settings: useCustomCLIDSettings
        calling_line_id_phone_number: callingLineIdPhoneNumber
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        use_custom_dnis_announcement_settings: useCustomDnisAnnouncementSettings
        priority: priority
        allow_outgoing_acd_call: allowOutgoingACDCall
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
        E("new_dnis_name", "newDNISName", str),
        E("dnis_phone_number", "dnisPhoneNumber", str),
        E("extension", "extension", str),
        E("use_custom_clid_settings", "useCustomCLIDSettings", bool),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("calling_line_id_last_name", "callingLineIdLastName", str),
        E("calling_line_id_first_name", "callingLineIdFirstName", str),
        E("use_custom_dnis_announcement_settings", "useCustomDnisAnnouncementSettings", bool),
        E("priority", "priority", str),
        E("allow_outgoing_acd_call", "allowOutgoingACDCall", bool),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)
    new_dnis_name: str = Field(type=str, required=False, mutable=False)
    dnis_phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    use_custom_clid_settings: bool = Field(type=bool, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=False, mutable=False)
    use_custom_dnis_announcement_settings: bool = Field(
        type=bool, required=False, mutable=False,
    )
    priority: str = Field(type=str, required=False, mutable=False)
    allow_outgoing_acd_call: bool = Field(type=bool, required=False, mutable=False)


class GroupCallCenterModifyInstanceWeightedCallDistributionRequest(OCIRequest):
    """
    Request to modify the weighted call distribution of a Call Center instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        agent_weight: agentWeight
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("agent_weight", "agentWeight", OCI.HuntAgentWeight, is_complex=True, is_array=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    agent_weight: "List[OCI.HuntAgentWeight]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterModifyRoutingPolicyRequest(OCIRequest):
    """
    Modify the group call center routing policy.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        routing_policy: routingPolicy
        routing_priority_order: routingPriorityOrder
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("routing_policy", "routingPolicy", str),
        E(
            "routing_priority_order", "routingPriorityOrder",
            OCI.CallCenterRoutingPriorityOrder, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    routing_policy: str = Field(type=str, required=False, mutable=False)
    routing_priority_order: "List[OCI.CallCenterRoutingPriorityOrder]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterModifySupervisorListRequest(OCIRequest):
    """
    Replaces a list of users as supervisors for a call center.

    Also allows the modification of the reporting server URL address.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Element
    "reportingServerURL"" will always be ignored.

    Replaced By: ``GroupCallCenterSupervisorReportingModifyRequest()``

    Attributes:
        service_user_id: serviceUserId
        reporting_server_url: reportingServerURL
        supervisor_user_id_list: supervisorUserIdList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("reporting_server_url", "reportingServerURL", str),
        E(
            "supervisor_user_id_list", "supervisorUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    reporting_server_url: str = Field(type=str, required=False, mutable=False)
    supervisor_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupCallCenterModifySupervisorListRequest16(OCIRequest):
    """
    Request to modify the supervisor list for a call center.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        supervisor_user_id_list: supervisorUserIdList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "supervisor_user_id_list", "supervisorUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    supervisor_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupCallCenterQueueCallDispositionCodeSettingsModifyRequest(OCIRequest):
    """
    Modify the enterprise level data associated with Call Center Agents Unavailable Code
    Settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        enable_call_disposition_codes: enableCallDispositionCodes
        include_organization_codes: includeOrganizationCodes
        force_use_of_call_disposition_codes: forceUseOfCallDispositionCodes
        default_call_disposition_code: defaultCallDispositionCode
        call_disposition_code_activation: callDispositionCodeActivation
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("enable_call_disposition_codes", "enableCallDispositionCodes", bool),
        E("include_organization_codes", "includeOrganizationCodes", bool),
        E("force_use_of_call_disposition_codes", "forceUseOfCallDispositionCodes", bool),
        E(
            "default_call_disposition_code", "defaultCallDispositionCode",
            OCI.CallDispositionCodeWithLevel, is_complex=True,
        ),
        E(
            "call_disposition_code_activation", "callDispositionCodeActivation",
            OCI.CallDispositionCodeActivation, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    enable_call_disposition_codes: bool = Field(type=bool, required=False, mutable=False)
    include_organization_codes: bool = Field(type=bool, required=False, mutable=False)
    force_use_of_call_disposition_codes: bool = Field(
        type=bool, required=False, mutable=False,
    )
    default_call_disposition_code: "OCI.CallDispositionCodeWithLevel" = Field(
        type=OCI.CallDispositionCodeWithLevel, required=False, mutable=False,
    )
    call_disposition_code_activation: "OCI.CallDispositionCodeActivation" = Field(
        type=OCI.CallDispositionCodeActivation, required=False, mutable=False,
    )


class GroupCallCenterQueueThresholdsModifyRequest(OCIRequest):
    """
    Modify a call center's queue Thresholds settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        threshold_current_calls_in_queue_yellow: thresholdCurrentCallsInQueueYellow
        threshold_current_calls_in_queue_red: thresholdCurrentCallsInQueueRed
        threshold_current_longest_waiting_call_yellow:
            thresholdCurrentLongestWaitingCallYellow
        threshold_current_longest_waiting_call_red: thresholdCurrentLongestWaitingCallRed
        threshold_average_estimated_wait_time_yellow:
            thresholdAverageEstimatedWaitTimeYellow
        threshold_average_estimated_wait_time_red: thresholdAverageEstimatedWaitTimeRed
        threshold_average_handling_time_yellow: thresholdAverageHandlingTimeYellow
        threshold_average_handling_time_red: thresholdAverageHandlingTimeRed
        threshold_average_speed_of_answer_yellow: thresholdAverageSpeedOfAnswerYellow
        threshold_average_speed_of_answer_red: thresholdAverageSpeedOfAnswerRed
        enable_notification_email: enableNotificationEmail
        notification_email_address_list: notificationEmailAddressList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E(
            "threshold_current_calls_in_queue_yellow",
            "thresholdCurrentCallsInQueueYellow", int,
        ),
        E("threshold_current_calls_in_queue_red", "thresholdCurrentCallsInQueueRed", int),
        E(
            "threshold_current_longest_waiting_call_yellow",
            "thresholdCurrentLongestWaitingCallYellow", int,
        ),
        E(
            "threshold_current_longest_waiting_call_red",
            "thresholdCurrentLongestWaitingCallRed", int,
        ),
        E(
            "threshold_average_estimated_wait_time_yellow",
            "thresholdAverageEstimatedWaitTimeYellow", int,
        ),
        E(
            "threshold_average_estimated_wait_time_red",
            "thresholdAverageEstimatedWaitTimeRed", int,
        ),
        E(
            "threshold_average_handling_time_yellow",
            "thresholdAverageHandlingTimeYellow", int,
        ),
        E("threshold_average_handling_time_red", "thresholdAverageHandlingTimeRed", int),
        E(
            "threshold_average_speed_of_answer_yellow",
            "thresholdAverageSpeedOfAnswerYellow", int,
        ),
        E("threshold_average_speed_of_answer_red", "thresholdAverageSpeedOfAnswerRed", int),
        E("enable_notification_email", "enableNotificationEmail", bool),
        E(
            "notification_email_address_list", "notificationEmailAddressList",
            OCI.CallCenterQueueThresholdReplacementNotificationEmailList, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    threshold_current_calls_in_queue_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_calls_in_queue_red: int = Field(type=int, required=False, mutable=False)
    threshold_current_longest_waiting_call_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_current_longest_waiting_call_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_estimated_wait_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_estimated_wait_time_red: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_handling_time_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_handling_time_red: int = Field(type=int, required=False, mutable=False)
    threshold_average_speed_of_answer_yellow: int = Field(
        type=int, required=False, mutable=False,
    )
    threshold_average_speed_of_answer_red: int = Field(
        type=int, required=False, mutable=False,
    )
    enable_notification_email: bool = Field(type=bool, required=False, mutable=False)
    notification_email_address_list: "OCI.CallCenterQueueThresholdReplacementNotificationEmailList" = Field(
        type=OCI.CallCenterQueueThresholdReplacementNotificationEmailList, required=False,
        mutable=False,
    )


class GroupCallCenterSupervisorReportingModifyRequest(OCIRequest):
    """
    Replaces a list of users as supervisors for a call center.

    Also allows the modification of the reporting server URL address.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterModifySupervisorListRequest16()``

    Attributes:
        service_user_id: serviceUserId
        reporting_server_name: reportingServerName
        supervisor_user_id_list: supervisorUserIdList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("reporting_server_name", "reportingServerName", str),
        E(
            "supervisor_user_id_list", "supervisorUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    reporting_server_name: str = Field(type=str, required=False, mutable=False)
    supervisor_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupCallParkModifyInstanceRequest(OCIRequest):
    """
    Modifies a Call Park group.

    Replaces the entire list of users in the group.  The users are in the list are in the
    order they will try to be parked on.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: recallAlternateUserId recallTo

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        user_id_list: userIdList
        recall_alternate_user_id: recallAlternateUserId
        recall_to: recallTo
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("user_id_list", "userIdList", OCI.ReplacementUserIdList, is_complex=True),
        E("recall_alternate_user_id", "recallAlternateUserId", str),
        E("recall_to", "recallTo", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    recall_alternate_user_id: str = Field(type=str, required=False, mutable=False)
    recall_to: str = Field(type=str, required=False, mutable=False)


class GroupCallPickupModifyInstanceRequest(OCIRequest):
    """
    Modifies a Call Pickup group.

    Replaces the entire list of users in the group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        user_id_list: userIdList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("user_id_list", "userIdList", OCI.ReplacementUserIdList, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupCommonPhoneListAddListRequest(OCIRequest):
    """
    Add one or more entries to a group's common phone list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        entry: entry
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("entry", "entry", OCI.PhoneListEntry, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    entry: "OCI.PhoneListEntry" = Field(type=OCI.PhoneListEntry, required=True, mutable=False)


class GroupCommonPhoneListGetListRequest(OCIRequest):
    """
    Get a group's common phone list.

    The response is either a ``GroupCommonPhoneListGetListResponse()`` or an
    ``ErrorResponse()``. The search can be done using multiple criterion.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterion are included
    in the results.  If no search criteria is specified, all results are returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``. In all cases, if a responseSizeLimit is specified and the number
    of matching results is more than this limit, then an ``ErrorResponse()`` is returned.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_group_common_phone_list_name:
            searchCriteriaGroupCommonPhoneListName
        search_criteria_group_common_phone_list_number:
            searchCriteriaGroupCommonPhoneListNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_group_common_phone_list_name",
            "searchCriteriaGroupCommonPhoneListName",
            OCI.SearchCriteriaGroupCommonPhoneListName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_common_phone_list_number",
            "searchCriteriaGroupCommonPhoneListNumber",
            OCI.SearchCriteriaGroupCommonPhoneListNumber, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_group_common_phone_list_name: "List[OCI.SearchCriteriaGroupCommonPhoneListName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_common_phone_list_number: "List[OCI.SearchCriteriaGroupCommonPhoneListNumber]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCommunicationBarringAuthorizationCodeAddListRequest(OCIRequest):
    """
    Add a list of Communication Barring Authorization codes to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "code", "code", OCI.CommunicationBarringAuthorizationCodeEntry,
            is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    code: "OCI.CommunicationBarringAuthorizationCodeEntry" = Field(
        type=OCI.CommunicationBarringAuthorizationCodeEntry, required=True, mutable=False,
    )


class GroupCommunicationBarringProfileModifyListRequest(OCIRequest):
    """
    Assign a replacement list of Communication Barring Profiles to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. This command
    only applies to groups in an Enterprise.  This command will fail for groups in a
    Service Provider.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        profile_name: profileName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "profile_name", "profileName", OCI.CommunicationBarringProfileReplacementList,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    profile_name: "OCI.CommunicationBarringProfileReplacementList" = Field(
        type=OCI.CommunicationBarringProfileReplacementList, required=False, mutable=False,
    )


class GroupCustomContactDirectoryAddRequest17(OCIRequest):
    """
    Adds a Custom Contact Directory to a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        entry: entry
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("entry", "entry", OCI.CustomContactDirectoryEntry, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    entry: "OCI.CustomContactDirectoryEntry" = Field(
        type=OCI.CustomContactDirectoryEntry, required=False, mutable=False,
    )


class GroupCustomContactDirectoryModifyRequest(OCIRequest):
    """
    Adds a Custom Contact Directory to a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replace by:
    ``GroupCustomContactDirectoryModifyRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        user_id_list: userIdList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("user_id_list", "userIdList", OCI.ReplacementUserIdList, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupDepartmentAddRequest(OCIRequest):
    """
    Add a department to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: callingLineIdName
    caliingLineIdPhoneNumber

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_name: departmentName
        parent_department_key: parentDepartmentKey
        calling_line_id_name: callingLineIdName
        calling_line_id_phone_number: callingLineIdPhoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_name", "departmentName", str, is_required=True),
        E("parent_department_key", "parentDepartmentKey", OCI.DepartmentKey, is_complex=True),
        E("calling_line_id_name", "callingLineIdName", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=True, mutable=False)
    parent_department_key: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    calling_line_id_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)


class GroupDepartmentAdminAddRequest(OCIRequest):
    """
    Add a department administrator to a group department.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        department_key: departmentKey
        user_id: userId
        first_name: firstName
        last_name: lastName
        password: password
        language: language
    """

    _ELEMENTS = (
        E(
            "department_key", "departmentKey", OCI.GroupDepartmentKey, is_complex=True,
            is_required=True,
        ),
        E("user_id", "userId", str, is_required=True),
        E("first_name", "firstName", str),
        E("last_name", "lastName", str),
        E("password", "password", str),
        E("language", "language", str),
    )

    department_key: "OCI.GroupDepartmentKey" = Field(
        type=OCI.GroupDepartmentKey, required=True, mutable=False,
    )
    user_id: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    language: str = Field(type=str, required=False, mutable=False)


class GroupDepartmentAdminGetListRequest(OCIRequest):
    """
    Get a list of department administrators for the department.

    The response is either a ``GroupDepartmentAdminGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        department_key: departmentKey
    """

    _ELEMENTS = (
        E(
            "department_key", "departmentKey", OCI.GroupDepartmentKey, is_complex=True,
            is_required=True,
        ),
    )

    department_key: "OCI.GroupDepartmentKey" = Field(
        type=OCI.GroupDepartmentKey, required=True, mutable=False,
    )


class GroupDepartmentModifyRequest(OCIRequest):
    """
    Modify a department of a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: callingLineIdName
    caliingLineIdPhoneNumber

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_name: departmentName
        new_department_name: newDepartmentName
        new_parent_department_key: newParentDepartmentKey
        calling_line_id_name: callingLineIdName
        calling_line_id_phone_number: callingLineIdPhoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_name", "departmentName", str, is_required=True),
        E("new_department_name", "newDepartmentName", str),
        E(
            "new_parent_department_key", "newParentDepartmentKey", OCI.DepartmentKey,
            is_complex=True,
        ),
        E("calling_line_id_name", "callingLineIdName", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_name: str = Field(type=str, required=True, mutable=False)
    new_department_name: str = Field(type=str, required=False, mutable=False)
    new_parent_department_key: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    calling_line_id_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)


class GroupDeviceManagementEventGetListRequest(OCIRequest):
    """
    Request device management's events for a specific queue.

    It is possible to restrict the number of rows returned using responseSizeLimit.  If
    eventQueueType is not specified, the events from all the event queues are returned.

    The response is either a ``GroupDeviceManagementEventGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        event_queue_type: eventQueueType
        response_size_limit: responseSizeLimit
        search_criteria_exact_device_management_event_status_in_progress_or_pending:
            searchCriteriaExactDeviceManagementEventStatusInProgressOrPending
        search_criteria_exact_device_management_event_status_completed:
            searchCriteriaExactDeviceManagementEventStatusCompleted
        search_criteria_exact_device_management_event_action:
            searchCriteriaExactDeviceManagementEventAction
        search_criteria_exact_device_management_event_level:
            searchCriteriaExactDeviceManagementEventLevel
        search_criteria_exact_device_management_event_type:
            searchCriteriaExactDeviceManagementEventType
        search_criteria_device_management_event_additional_info:
            searchCriteriaDeviceManagementEventAdditionalInfo
        search_criteria_device_management_event_login_id:
            searchCriteriaDeviceManagementEventLoginId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("event_queue_type", "eventQueueType", str),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_exact_device_management_event_status_in_progress_or_pending",
            "searchCriteriaExactDeviceManagementEventStatusInProgressOrPending",
            OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_status_completed",
            "searchCriteriaExactDeviceManagementEventStatusCompleted",
            OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_action",
            "searchCriteriaExactDeviceManagementEventAction",
            OCI.SearchCriteriaExactDeviceManagementEventAction, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_level",
            "searchCriteriaExactDeviceManagementEventLevel",
            OCI.SearchCriteriaExactDeviceManagementEventLevel, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_type",
            "searchCriteriaExactDeviceManagementEventType",
            OCI.SearchCriteriaExactDeviceManagementEventType, is_complex=True,
        ),
        E(
            "search_criteria_device_management_event_additional_info",
            "searchCriteriaDeviceManagementEventAdditionalInfo",
            OCI.SearchCriteriaDeviceManagementEventAdditionalInfo, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_device_management_event_login_id",
            "searchCriteriaDeviceManagementEventLoginId",
            OCI.SearchCriteriaDeviceManagementEventLoginId, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    event_queue_type: str = Field(type=str, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_exact_device_management_event_status_in_progress_or_pending: "OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
        required=False, mutable=False,
    )
    search_criteria_exact_device_management_event_status_completed: "OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted, required=False,
        mutable=False,
    )
    search_criteria_exact_device_management_event_action: "OCI.SearchCriteriaExactDeviceManagementEventAction" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventAction, required=False,
        mutable=False,
    )
    search_criteria_exact_device_management_event_level: "OCI.SearchCriteriaExactDeviceManagementEventLevel" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventLevel, required=False,
        mutable=False,
    )
    search_criteria_exact_device_management_event_type: "OCI.SearchCriteriaExactDeviceManagementEventType" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventType, required=False,
        mutable=False,
    )
    search_criteria_device_management_event_additional_info: "List[OCI.SearchCriteriaDeviceManagementEventAdditionalInfo]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_management_event_login_id: "List[OCI.SearchCriteriaDeviceManagementEventLoginId]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupDeviceTypeFileModifyRequest(OCIRequest):
    """
    Request to modify a specified device type file for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupDeviceTypeFileModifyRequest14sp8()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        file_type: fileType
        file_source: fileSource
        upload_file: uploadFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )


class GroupDeviceTypeFileModifyRequest14sp8(OCIRequest):
    """
    Request to modify a specified device type file for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_type: deviceType
        file_format: fileFormat
        file_source: fileSource
        upload_file: uploadFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )


class GroupDialableCallerIDCriteriaModifyRequest(OCIRequest):
    """
    Modify a Dialable Caller ID Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        description: description
        prefix_digits: prefixDigits
        match_call_type: matchCallType
        match_alternate_call_indicator: matchAlternateCallIndicator
        match_local_category: matchLocalCategory
        match_national_category: matchNationalCategory
        match_interlata_category: matchInterlataCategory
        match_intralata_category: matchIntralataCategory
        match_international_category: matchInternationalCategory
        match_private_category: matchPrivateCategory
        match_emergency_category: matchEmergencyCategory
        match_other_category: matchOtherCategory
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("prefix_digits", "prefixDigits", str),
        E(
            "match_call_type", "matchCallType",
            OCI.ReplacementCommunicationBarringCallTypeList, is_complex=True,
        ),
        E(
            "match_alternate_call_indicator", "matchAlternateCallIndicator",
            OCI.ReplacementCommunicationBarringAlternateCallIndicatorList, is_complex=True,
        ),
        E("match_local_category", "matchLocalCategory", bool),
        E("match_national_category", "matchNationalCategory", bool),
        E("match_interlata_category", "matchInterlataCategory", bool),
        E("match_intralata_category", "matchIntralataCategory", bool),
        E("match_international_category", "matchInternationalCategory", bool),
        E("match_private_category", "matchPrivateCategory", bool),
        E("match_emergency_category", "matchEmergencyCategory", bool),
        E("match_other_category", "matchOtherCategory", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    prefix_digits: str = Field(type=str, required=False, mutable=False)
    match_call_type: "OCI.ReplacementCommunicationBarringCallTypeList" = Field(
        type=OCI.ReplacementCommunicationBarringCallTypeList, required=False,
        mutable=False,
    )
    match_alternate_call_indicator: "OCI.ReplacementCommunicationBarringAlternateCallIndicatorList" = Field(
        type=OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
        required=False, mutable=False,
    )
    match_local_category: bool = Field(type=bool, required=False, mutable=False)
    match_national_category: bool = Field(type=bool, required=False, mutable=False)
    match_interlata_category: bool = Field(type=bool, required=False, mutable=False)
    match_intralata_category: bool = Field(type=bool, required=False, mutable=False)
    match_international_category: bool = Field(type=bool, required=False, mutable=False)
    match_private_category: bool = Field(type=bool, required=False, mutable=False)
    match_emergency_category: bool = Field(type=bool, required=False, mutable=False)
    match_other_category: bool = Field(type=bool, required=False, mutable=False)


class GroupDialableCallerIDModifyRequest(OCIRequest):
    """
    Modify the group�s Dialable Caller ID settings and criteria list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_group_criteria: useGroupCriteria
        ns_screening_failure_policy: nsScreeningFailurePolicy
        criteria_priority_order: criteriaPriorityOrder
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_group_criteria", "useGroupCriteria", bool),
        E("ns_screening_failure_policy", "nsScreeningFailurePolicy", str),
        E(
            "criteria_priority_order", "criteriaPriorityOrder",
            OCI.DialableCallerIDCriteriaPriorityOrder, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_group_criteria: bool = Field(type=bool, required=False, mutable=False)
    ns_screening_failure_policy: str = Field(type=str, required=False, mutable=False)
    criteria_priority_order: "List[OCI.DialableCallerIDCriteriaPriorityOrder]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupDirectoryNumberHuntingModifyRequest(OCIRequest):
    """
    Replaces a list of users as agents for a directory number hunting group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        agent_user_id_list: agentUserIdList
        use_terminate_call_to_agent_first: useTerminateCallToAgentFirst
        use_original_agent_services_for_busy_and_no_answer_calls:
            useOriginalAgentServicesForBusyAndNoAnswerCalls
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "agent_user_id_list", "agentUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
        E("use_terminate_call_to_agent_first", "useTerminateCallToAgentFirst", bool),
        E(
            "use_original_agent_services_for_busy_and_no_answer_calls",
            "useOriginalAgentServicesForBusyAndNoAnswerCalls", bool,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    agent_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    use_terminate_call_to_agent_first: bool = Field(type=bool, required=False, mutable=False)
    use_original_agent_services_for_busy_and_no_answer_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )


class GroupDnActivateListRequest(OCIRequest):
    """
    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.  It is not an error to activate an already activated DN

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        phone_number: phoneNumber
        dn_range: dnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_array=True),
        E("dn_range", "dnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class GroupDnAssignListRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        phone_number: phoneNumber
        dn_range: dnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_array=True),
        E("dn_range", "dnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class GroupDnDeactivateListRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        phone_number: phoneNumber
        dn_range: dnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_array=True),
        E("dn_range", "dnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class GroupDnListAssignDepartmentRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_key: departmentKey
        phone_number: phoneNumber
        dn_range: dnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_key", "departmentKey", OCI.DepartmentKey, is_complex=True),
        E("phone_number", "phoneNumber", str, is_array=True),
        E("dn_range", "dnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_key: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class GroupDnUnassignListRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        phone_number: phoneNumber
        dn_range: dnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_array=True),
        E("dn_range", "dnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class GroupEmergencyZonesAddHomeZoneListRequest(OCIRequest):
    """
    Add a list of home zones and/or home zone ranges to the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        home_zone_ip_address: homeZoneIpAddress
        home_zone_ip_address_range: homeZoneIpAddressRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("home_zone_ip_address", "homeZoneIpAddress", str, is_array=True),
        E(
            "home_zone_ip_address_range", "homeZoneIpAddressRange", OCI.IPAddressRange,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    home_zone_ip_address: "List[str]" = Field(type=list, required=False, mutable=False)
    home_zone_ip_address_range: "List[OCI.IPAddressRange]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupEmergencyZonesDeleteHomeZoneListRequest(OCIRequest):
    """
    Delete a list of home zones and/or home zone ranges to the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        home_zone_ip_address: homeZoneIpAddress
        home_zone_ip_address_range: homeZoneIpAddressRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("home_zone_ip_address", "homeZoneIpAddress", str, is_array=True),
        E(
            "home_zone_ip_address_range", "homeZoneIpAddressRange", OCI.IPAddressRange,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    home_zone_ip_address: "List[str]" = Field(type=list, required=False, mutable=False)
    home_zone_ip_address_range: "List[OCI.IPAddressRange]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupEnterpriseTrunkGetAvailableTrunkGroupListRequest(OCIRequest):
    """
    Request to get the list of all available trunk groups defined in a 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 a ``GroupEnterpriseTrunkGetAvailableTrunkGroupListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_trunk_group_name: searchCriteriaTrunkGroupName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_trunk_group_name", "searchCriteriaTrunkGroupName",
            OCI.SearchCriteriaTrunkGroupName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_trunk_group_name: "List[OCI.SearchCriteriaTrunkGroupName]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupExchangeIntegrationModifyRequest(OCIRequest):
    """
    Modify the group level configuration for Exchange Integration.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enable_exchange_integration: enableExchangeIntegration
        exchange_url: exchangeURL
        exchange_credentials: exchangeCredentials
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enable_exchange_integration", "enableExchangeIntegration", bool),
        E("exchange_url", "exchangeURL", str),
        E(
            "exchange_credentials", "exchangeCredentials", OCI.ExchangeUserNamePassword,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enable_exchange_integration: bool = Field(type=bool, required=False, mutable=False)
    exchange_url: str = Field(type=str, required=False, mutable=False)
    exchange_credentials: "OCI.ExchangeUserNamePassword" = Field(
        type=OCI.ExchangeUserNamePassword, required=False, mutable=False,
    )


class GroupFeatureAccessCodeModifyListRequest(OCIRequest):
    """
    Modify a list of feature access codes for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``GroupFeatureAccessCodeModifyRequest()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        feature_access_code: featureAccessCode
        restore_default_codes: restoreDefaultCodes
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeEntry,
            is_complex=True, is_array=True,
        ),
        E("restore_default_codes", "restoreDefaultCodes", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    feature_access_code: "List[OCI.FeatureAccessCodeEntry]" = Field(
        type=list, required=False, mutable=False,
    )
    restore_default_codes: bool = Field(type=bool, required=False, mutable=False)


class GroupFeatureAccessCodeModifyRequest(OCIRequest):
    """
    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.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_feature_access_code_level: useFeatureAccessCodeLevel
        restore_default_codes: restoreDefaultCodes
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_feature_access_code_level", "useFeatureAccessCodeLevel", str),
        E("restore_default_codes", "restoreDefaultCodes", bool),
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeEntry,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_feature_access_code_level: str = Field(type=str, required=False, mutable=False)
    restore_default_codes: bool = Field(type=bool, required=False, mutable=False)
    feature_access_code: "List[OCI.FeatureAccessCodeEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupFeatureAccessCodeModifyRequest20(OCIRequest):
    """
    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.  In release 20 the "Call Recording" FAC name is
    changed to "Call Recording - Start". Replaced by:
    ``GroupFeatureAccessCodeModifyRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_feature_access_code_level: useFeatureAccessCodeLevel
        restore_default_codes: restoreDefaultCodes
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_feature_access_code_level", "useFeatureAccessCodeLevel", str),
        E("restore_default_codes", "restoreDefaultCodes", bool),
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeEntry,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_feature_access_code_level: str = Field(type=str, required=False, mutable=False)
    restore_default_codes: bool = Field(type=bool, required=False, mutable=False)
    feature_access_code: "List[OCI.FeatureAccessCodeEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupFeatureAccessCodeModifyRequest21(OCIRequest):
    """
    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.  In release 20 the "Call Recording" FAC name is
    changed to "Call Recording - Start".

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_feature_access_code_level: useFeatureAccessCodeLevel
        restore_default_codes: restoreDefaultCodes
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_feature_access_code_level", "useFeatureAccessCodeLevel", str),
        E("restore_default_codes", "restoreDefaultCodes", bool),
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeModifyEntry,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_feature_access_code_level: str = Field(type=str, required=False, mutable=False)
    restore_default_codes: bool = Field(type=bool, required=False, mutable=False)
    feature_access_code: "List[OCI.FeatureAccessCodeModifyEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupFindMeFollowMeAddAlertingGroupSelectiveCriteriaRequest(OCIRequest):
    """
    Add a criteria to the Find-me/Follow-me alerting group.

    For the callToNumber, the extension and number elements are not used and the only
    types accepted for each number are Primary and Alternates.  If other type is specified
    the command fails.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        call_to_number: callToNumber
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)


class GroupFindMeFollowMeModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Find-me/Follow-me instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupFindMeFollowMeModifyAlertingGroupRequest(OCIRequest):
    """
    Modify a Find-me/Follow-me alerting group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
        new_alerting_group_name: newAlertingGroupName
        alerting_group_description: alertingGroupDescription
        use_diversion_inhibitor: useDiversionInhibitor
        answer_confirmation_required: answerConfirmationRequired
        number_of_rings: numberOfRings
        phone_number_or_user_list: phoneNumberOrUserList
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str, is_required=True),
        E("new_alerting_group_name", "newAlertingGroupName", str),
        E("alerting_group_description", "alertingGroupDescription", str),
        E("use_diversion_inhibitor", "useDiversionInhibitor", bool),
        E("answer_confirmation_required", "answerConfirmationRequired", bool),
        E("number_of_rings", "numberOfRings", int),
        E(
            "phone_number_or_user_list", "phoneNumberOrUserList",
            OCI.FindMeFollowMeAlertingGroupReplacementOutgoingDNSIPURIorUserIdList,
            is_complex=True,
        ),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=True, mutable=False)
    new_alerting_group_name: str = Field(type=str, required=False, mutable=False)
    alerting_group_description: str = Field(type=str, required=False, mutable=False)
    use_diversion_inhibitor: bool = Field(type=bool, required=False, mutable=False)
    answer_confirmation_required: bool = Field(type=bool, required=False, mutable=False)
    number_of_rings: int = Field(type=int, required=False, mutable=False)
    phone_number_or_user_list: "OCI.FindMeFollowMeAlertingGroupReplacementOutgoingDNSIPURIorUserIdList" = Field(
        type=OCI.FindMeFollowMeAlertingGroupReplacementOutgoingDNSIPURIorUserIdList,
        required=False, mutable=False,
    )
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupFlexibleSeatingHostModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of flexible seating host instances.

    Host cannot be disabled when a flexible seating guest is associated.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupGetListInServiceProviderRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_group_name: searchCriteriaGroupName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_name", "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_name: "List[OCI.SearchCriteriaGroupName]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupGetListInSystemRequest(OCIRequest):
    """
    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()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_group_name: searchCriteriaGroupName
        search_criteria_exact_service_provider: searchCriteriaExactServiceProvider
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_name", "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider", OCI.SearchCriteriaExactServiceProvider,
            is_complex=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_name: "List[OCI.SearchCriteriaGroupName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_service_provider: "OCI.SearchCriteriaExactServiceProvider" = Field(
        type=OCI.SearchCriteriaExactServiceProvider, required=False, mutable=False,
    )


class GroupGroupNightForwardingModifyRequest(OCIRequest):
    """
    Request to modify the Group Night Forwarding group parameters.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        night_forwarding: nightForwarding
        business_hours: businessHours
        holiday_schedule: holidaySchedule
        forward_to_phone_number: forwardToPhoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("night_forwarding", "nightForwarding", str),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    night_forwarding: str = Field(type=str, required=False, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)


class GroupGroupPagingModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Group Paging instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupGroupPagingModifyOriginatorListRequest(OCIRequest):
    """
    Request to modify the originator list for a paging group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        originator_user_id_list: originatorUserIdList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "originator_user_id_list", "originatorUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    originator_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupGroupPagingModifyTargetListRequest(OCIRequest):
    """
    Request to modify the target list for a paging group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        target_user_id_list: targetUserIdList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "target_user_id_list", "targetUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    target_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupHolidayScheduleAddRequest(OCIRequest):
    """
    Add a holiday schedule to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        holiday_schedule_name: holidayScheduleName
        holiday01: holiday01
        holiday02: holiday02
        holiday03: holiday03
        holiday04: holiday04
        holiday05: holiday05
        holiday06: holiday06
        holiday07: holiday07
        holiday08: holiday08
        holiday09: holiday09
        holiday10: holiday10
        holiday11: holiday11
        holiday12: holiday12
        holiday13: holiday13
        holiday14: holiday14
        holiday15: holiday15
        holiday16: holiday16
        holiday17: holiday17
        holiday18: holiday18
        holiday19: holiday19
        holiday20: holiday20
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
        E("holiday01", "holiday01", OCI.Holiday, is_complex=True),
        E("holiday02", "holiday02", OCI.Holiday, is_complex=True),
        E("holiday03", "holiday03", OCI.Holiday, is_complex=True),
        E("holiday04", "holiday04", OCI.Holiday, is_complex=True),
        E("holiday05", "holiday05", OCI.Holiday, is_complex=True),
        E("holiday06", "holiday06", OCI.Holiday, is_complex=True),
        E("holiday07", "holiday07", OCI.Holiday, is_complex=True),
        E("holiday08", "holiday08", OCI.Holiday, is_complex=True),
        E("holiday09", "holiday09", OCI.Holiday, is_complex=True),
        E("holiday10", "holiday10", OCI.Holiday, is_complex=True),
        E("holiday11", "holiday11", OCI.Holiday, is_complex=True),
        E("holiday12", "holiday12", OCI.Holiday, is_complex=True),
        E("holiday13", "holiday13", OCI.Holiday, is_complex=True),
        E("holiday14", "holiday14", OCI.Holiday, is_complex=True),
        E("holiday15", "holiday15", OCI.Holiday, is_complex=True),
        E("holiday16", "holiday16", OCI.Holiday, is_complex=True),
        E("holiday17", "holiday17", OCI.Holiday, is_complex=True),
        E("holiday18", "holiday18", OCI.Holiday, is_complex=True),
        E("holiday19", "holiday19", OCI.Holiday, is_complex=True),
        E("holiday20", "holiday20", OCI.Holiday, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)
    holiday01: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday02: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday03: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday04: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday05: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday06: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday07: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday08: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday09: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday10: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday11: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday12: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday13: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday14: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday15: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday16: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday17: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday18: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday19: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday20: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)


class GroupHolidayScheduleModifyRequest(OCIRequest):
    """
    Modify a holiday schedule in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        holiday_schedule_name: holidayScheduleName
        new_holiday_schedule_name: newHolidayScheduleName
        holiday01: holiday01
        holiday02: holiday02
        holiday03: holiday03
        holiday04: holiday04
        holiday05: holiday05
        holiday06: holiday06
        holiday07: holiday07
        holiday08: holiday08
        holiday09: holiday09
        holiday10: holiday10
        holiday11: holiday11
        holiday12: holiday12
        holiday13: holiday13
        holiday14: holiday14
        holiday15: holiday15
        holiday16: holiday16
        holiday17: holiday17
        holiday18: holiday18
        holiday19: holiday19
        holiday20: holiday20
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
        E("new_holiday_schedule_name", "newHolidayScheduleName", str),
        E("holiday01", "holiday01", OCI.Holiday, is_complex=True),
        E("holiday02", "holiday02", OCI.Holiday, is_complex=True),
        E("holiday03", "holiday03", OCI.Holiday, is_complex=True),
        E("holiday04", "holiday04", OCI.Holiday, is_complex=True),
        E("holiday05", "holiday05", OCI.Holiday, is_complex=True),
        E("holiday06", "holiday06", OCI.Holiday, is_complex=True),
        E("holiday07", "holiday07", OCI.Holiday, is_complex=True),
        E("holiday08", "holiday08", OCI.Holiday, is_complex=True),
        E("holiday09", "holiday09", OCI.Holiday, is_complex=True),
        E("holiday10", "holiday10", OCI.Holiday, is_complex=True),
        E("holiday11", "holiday11", OCI.Holiday, is_complex=True),
        E("holiday12", "holiday12", OCI.Holiday, is_complex=True),
        E("holiday13", "holiday13", OCI.Holiday, is_complex=True),
        E("holiday14", "holiday14", OCI.Holiday, is_complex=True),
        E("holiday15", "holiday15", OCI.Holiday, is_complex=True),
        E("holiday16", "holiday16", OCI.Holiday, is_complex=True),
        E("holiday17", "holiday17", OCI.Holiday, is_complex=True),
        E("holiday18", "holiday18", OCI.Holiday, is_complex=True),
        E("holiday19", "holiday19", OCI.Holiday, is_complex=True),
        E("holiday20", "holiday20", OCI.Holiday, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)
    new_holiday_schedule_name: str = Field(type=str, required=False, mutable=False)
    holiday01: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday02: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday03: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday04: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday05: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday06: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday07: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday08: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday09: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday10: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday11: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday12: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday13: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday14: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday15: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday16: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday17: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday18: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday19: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday20: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)


class GroupHuntGroupModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Hunt Group instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupHuntGroupModifyInstanceWeightedCallDistributionRequest(OCIRequest):
    """
    Request to modify the weighted call distribution of a Hunt Group instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. NOTE: Prior to
    release 14, any agents who were not in the list kept their existing weight setting.
    In release 14, any agents who are not in the list will have their weight set to 0.

    Attributes:
        service_user_id: serviceUserId
        agent_weight: agentWeight
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("agent_weight", "agentWeight", OCI.HuntAgentWeight, is_complex=True, is_array=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    agent_weight: "List[OCI.HuntAgentWeight]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupIMRNAssignListRequest(OCIRequest):
    """
    Assign a list of group DNs to the IMRN pool.

    It is possible to assign 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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        imrn: imrn
        imrn_range: imrnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("imrn", "imrn", str, is_array=True),
        E("imrn_range", "imrnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    imrn: "List[str]" = Field(type=list, required=False, mutable=False)
    imrn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class GroupIMRNUnassignListRequest(OCIRequest):
    """
    Unassign a list of group DNs from the group IMRN pool.

    The DNs then become available for assignment to users.  It is possible to delete
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        imrn: imrn
        imrn_range: imrnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("imrn", "imrn", str, is_array=True),
        E("imrn_range", "imrnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    imrn: "List[str]" = Field(type=list, required=False, mutable=False)
    imrn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class GroupInstantGroupCallModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Instant Group Call service instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupInterceptGroupModifyRequest(OCIRequest):
    """
    Modify the group's intercept group service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupInterceptGroupModifyRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        announcement_selection: announcementSelection
        audio_file: audioFile
        video_file: videoFile
        play_new_phone_number: playNewPhoneNumber
        new_phone_number: newPhoneNumber
        transfer_on_zero_to_phone_number: transferOnZeroToPhoneNumber
        transfer_phone_number: transferPhoneNumber
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("announcement_selection", "announcementSelection", str),
        E("audio_file", "audioFile", OCI.LabeledFileResource, is_complex=True),
        E("video_file", "videoFile", OCI.LabeledFileResource, is_complex=True),
        E("play_new_phone_number", "playNewPhoneNumber", bool),
        E("new_phone_number", "newPhoneNumber", str),
        E("transfer_on_zero_to_phone_number", "transferOnZeroToPhoneNumber", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    announcement_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    play_new_phone_number: bool = Field(type=bool, required=False, mutable=False)
    new_phone_number: str = Field(type=str, required=False, mutable=False)
    transfer_on_zero_to_phone_number: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)


class GroupInterceptGroupModifyRequest16(OCIRequest):
    """
    Modify the group's intercept group service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        announcement_selection: announcementSelection
        audio_file: audioFile
        video_file: videoFile
        play_new_phone_number: playNewPhoneNumber
        new_phone_number: newPhoneNumber
        transfer_on_zero_to_phone_number: transferOnZeroToPhoneNumber
        transfer_phone_number: transferPhoneNumber
        reroute_outbound_calls: rerouteOutboundCalls
        outbound_reroute_phone_number: outboundReroutePhoneNumber
        allow_outbound_local_calls: allowOutboundLocalCalls
        inbound_call_mode: inboundCallMode
        alternate_blocking_announcement: alternateBlockingAnnouncement
        route_to_voice_mail: routeToVoiceMail
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("announcement_selection", "announcementSelection", str),
        E("audio_file", "audioFile", OCI.LabeledMediaFileResource, is_complex=True),
        E("video_file", "videoFile", OCI.LabeledMediaFileResource, is_complex=True),
        E("play_new_phone_number", "playNewPhoneNumber", bool),
        E("new_phone_number", "newPhoneNumber", str),
        E("transfer_on_zero_to_phone_number", "transferOnZeroToPhoneNumber", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("reroute_outbound_calls", "rerouteOutboundCalls", bool),
        E("outbound_reroute_phone_number", "outboundReroutePhoneNumber", str),
        E("allow_outbound_local_calls", "allowOutboundLocalCalls", bool),
        E("inbound_call_mode", "inboundCallMode", str),
        E("alternate_blocking_announcement", "alternateBlockingAnnouncement", bool),
        E("route_to_voice_mail", "routeToVoiceMail", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    announcement_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    video_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    play_new_phone_number: bool = Field(type=bool, required=False, mutable=False)
    new_phone_number: str = Field(type=str, required=False, mutable=False)
    transfer_on_zero_to_phone_number: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    reroute_outbound_calls: bool = Field(type=bool, required=False, mutable=False)
    outbound_reroute_phone_number: str = Field(type=str, required=False, mutable=False)
    allow_outbound_local_calls: bool = Field(type=bool, required=False, mutable=False)
    inbound_call_mode: str = Field(type=str, required=False, mutable=False)
    alternate_blocking_announcement: bool = Field(type=bool, required=False, mutable=False)
    route_to_voice_mail: bool = Field(type=bool, required=False, mutable=False)


class GroupMWIDeliveryToMobileEndpointModifyRequest(OCIRequest):
    """
    Modify the group level MWI custom notifications settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. If the
    request is executed by a group administrator and modifies the useSettingLevel, the
    request is rejected.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        use_setting_level: useSettingLevel
        template_activation: templateActivation
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("use_setting_level", "useSettingLevel", str),
        E(
            "template_activation", "templateActivation",
            OCI.MWIDeliveryToMobileEndpointTemplateActivation, is_complex=True,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    use_setting_level: str = Field(type=str, required=False, mutable=False)
    template_activation: "List[OCI.MWIDeliveryToMobileEndpointTemplateActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupMeetMeConferencingModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Meet-Me Conferencing instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupMeetMeConferencingModifyRequest(OCIRequest):
    """
    Modify the group level data associated with Meet-Me Conferencing functions.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        allocated_ports: allocatedPorts
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "allocated_ports", "allocatedPorts", OCI.MeetMeConferencingConferencePorts,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    allocated_ports: "OCI.MeetMeConferencingConferencePorts" = Field(
        type=OCI.MeetMeConferencingConferencePorts, required=False, mutable=False,
    )


class GroupModifyRequest(OCIRequest):
    """
    Modify the profile for a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        default_domain: defaultDomain
        user_limit: userLimit
        group_name: groupName
        calling_line_id_name: callingLineIdName
        calling_line_id_phone_number: callingLineIdPhoneNumber
        time_zone: timeZone
        location_dialing_code: locationDialingCode
        contact: contact
        address: address
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("default_domain", "defaultDomain", str),
        E("user_limit", "userLimit", int),
        E("group_name", "groupName", str),
        E("calling_line_id_name", "callingLineIdName", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("time_zone", "timeZone", str),
        E("location_dialing_code", "locationDialingCode", str),
        E("contact", "contact", OCI.Contact, is_complex=True),
        E("address", "address", OCI.StreetAddress, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    default_domain: str = Field(type=str, required=False, mutable=False)
    user_limit: int = Field(type=int, required=False, mutable=False)
    group_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    location_dialing_code: str = Field(type=str, required=False, mutable=False)
    contact: "OCI.Contact" = Field(type=OCI.Contact, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )


class GroupMusicOnHoldAddInstanceRequest14sp6(OCIRequest):
    """
    Add a Music on Hold Instance to a department.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupMusicOnHoldAddInstanceRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True, is_required=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool, is_required=True),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool, is_required=True),
        E(
            "is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool,
            is_required=True,
        ),
        E("source", "source", OCI.MusicOnHoldSourceAdd, is_complex=True, is_required=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool, is_required=True,
        ),
        E("internal_source", "internalSource", OCI.MusicOnHoldSourceAdd, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=True, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=True, mutable=False)
    source: "OCI.MusicOnHoldSourceAdd" = Field(
        type=OCI.MusicOnHoldSourceAdd, required=True, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldSourceAdd" = Field(
        type=OCI.MusicOnHoldSourceAdd, required=False, mutable=False,
    )


class GroupMusicOnHoldAddInstanceRequest16(OCIRequest):
    """
    Add a Music on Hold Instance to a department.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True, is_required=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool, is_required=True),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool, is_required=True),
        E(
            "is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool,
            is_required=True,
        ),
        E("source", "source", OCI.MusicOnHoldSourceAdd16, is_complex=True, is_required=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool, is_required=True,
        ),
        E("internal_source", "internalSource", OCI.MusicOnHoldSourceAdd16, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=True, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=True, mutable=False)
    source: "OCI.MusicOnHoldSourceAdd16" = Field(
        type=OCI.MusicOnHoldSourceAdd16, required=True, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldSourceAdd16" = Field(
        type=OCI.MusicOnHoldSourceAdd16, required=False, mutable=False,
    )


class GroupMusicOnHoldAddInstanceRequest20(OCIRequest):
    """
    Add a Music on Hold Instance to a department.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``GroupMusicOnHoldAddInstanceRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True, is_required=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool, is_required=True),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool, is_required=True),
        E(
            "is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool,
            is_required=True,
        ),
        E("source", "source", OCI.MusicOnHoldSourceAdd20, is_complex=True, is_required=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool, is_required=True,
        ),
        E("internal_source", "internalSource", OCI.MusicOnHoldSourceAdd20, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=True, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=True, mutable=False)
    source: "OCI.MusicOnHoldSourceAdd20" = Field(
        type=OCI.MusicOnHoldSourceAdd20, required=True, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldSourceAdd20" = Field(
        type=OCI.MusicOnHoldSourceAdd20, required=False, mutable=False,
    )


class GroupMusicOnHoldAddInstanceRequest21(OCIRequest):
    """
    Add a Music on Hold Instance to a department.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True, is_required=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool, is_required=True),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool, is_required=True),
        E(
            "is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool,
            is_required=True,
        ),
        E("source", "source", OCI.MusicOnHoldSourceAdd21, is_complex=True, is_required=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool, is_required=True,
        ),
        E("internal_source", "internalSource", OCI.MusicOnHoldSourceAdd21, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=True, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=True, mutable=False)
    source: "OCI.MusicOnHoldSourceAdd21" = Field(
        type=OCI.MusicOnHoldSourceAdd21, required=True, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldSourceAdd21" = Field(
        type=OCI.MusicOnHoldSourceAdd21, required=False, mutable=False,
    )


class GroupMusicOnHoldDeleteInstanceRequest(OCIRequest):
    """
    Delete a Music On Hold department instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=True, mutable=False,
    )


class GroupMusicOnHoldGetInstanceRequest14(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.

    The response is either ``GroupMusicOnHoldGetInstanceResponse14()`` or
    ``ErrorResponse()``.

    Replaced By: GroupMusicOnHoldGetInstanceRequest14Sp4

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )


class GroupMusicOnHoldGetInstanceRequest14sp4(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.

    The response is either ``GroupMusicOnHoldGetInstanceResponse14sp4()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )


class GroupMusicOnHoldGetInstanceRequest14sp6(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.

    The response is either ``GroupMusicOnHoldGetInstanceResponse14sp6()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupMusicOnHoldGetInstanceRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )


class GroupMusicOnHoldGetInstanceRequest16(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.

    The response is either ``GroupMusicOnHoldGetInstanceResponse16()`` or
    ``ErrorResponse()``. Replaced by: ``GroupMusicOnHoldGetInstanceRequest19()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )


class GroupMusicOnHoldGetInstanceRequest19(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.

    The response is either ``GroupMusicOnHoldGetInstanceResponse19()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )


class GroupMusicOnHoldGetInstanceRequest20(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.

    The response is either ``GroupMusicOnHoldGetInstanceResponse20()`` or
    ``ErrorResponse()``. Replaced by: ``GroupMusicOnHoldGetInstanceRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )


class GroupMusicOnHoldGetInstanceRequest21(OCIRequest):
    """
    Get a Music On Hold data for a group or department instance.

    The response is either ``GroupMusicOnHoldGetInstanceResponse21()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )


class GroupMusicOnHoldModifyInstanceRequest14sp6(OCIRequest):
    """
    Modify data for a group or department Music On Hold Instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupMusicOnHoldModifyInstanceRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool),
        E("is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool),
        E("source", "source", OCI.MusicOnHoldSourceModify, is_complex=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool,
        ),
        E("internal_source", "internalSource", OCI.MusicOnHoldSourceModify, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=False, mutable=False)
    source: "OCI.MusicOnHoldSourceModify" = Field(
        type=OCI.MusicOnHoldSourceModify, required=False, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldSourceModify" = Field(
        type=OCI.MusicOnHoldSourceModify, required=False, mutable=False,
    )


class GroupMusicOnHoldModifyInstanceRequest16(OCIRequest):
    """
    Modify data for a group or department Music On Hold Instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool),
        E("is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool),
        E("source", "source", OCI.MusicOnHoldSourceModify16, is_complex=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool,
        ),
        E(
            "internal_source", "internalSource", OCI.MusicOnHoldSourceModify16,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=False, mutable=False)
    source: "OCI.MusicOnHoldSourceModify16" = Field(
        type=OCI.MusicOnHoldSourceModify16, required=False, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldSourceModify16" = Field(
        type=OCI.MusicOnHoldSourceModify16, required=False, mutable=False,
    )


class GroupMusicOnHoldModifyInstanceRequest20(OCIRequest):
    """
    Modify data for a group or department Music On Hold Instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``GroupMusicOnHoldModifyInstanceRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool),
        E("is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool),
        E("source", "source", OCI.MusicOnHoldSourceModify20, is_complex=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool,
        ),
        E(
            "internal_source", "internalSource", OCI.MusicOnHoldSourceModify20,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=False, mutable=False)
    source: "OCI.MusicOnHoldSourceModify20" = Field(
        type=OCI.MusicOnHoldSourceModify20, required=False, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldSourceModify20" = Field(
        type=OCI.MusicOnHoldSourceModify20, required=False, mutable=False,
    )


class GroupMusicOnHoldModifyInstanceRequest21(OCIRequest):
    """
    Modify data for a group or department Music On Hold Instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool),
        E("is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool),
        E("source", "source", OCI.MusicOnHoldSourceModify21, is_complex=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool,
        ),
        E(
            "internal_source", "internalSource", OCI.MusicOnHoldSourceModify21,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=False, mutable=False)
    source: "OCI.MusicOnHoldSourceModify21" = Field(
        type=OCI.MusicOnHoldSourceModify21, required=False, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldSourceModify21" = Field(
        type=OCI.MusicOnHoldSourceModify21, required=False, mutable=False,
    )


class GroupNetworkClassOfServiceAssignListRequest21(OCIRequest):
    """
    Assign a list of Network Classes of Service to a group.

    A default Network Class of Service must be specified unless there is already one
    assigned to the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        network_class_of_service: networkClassOfService
        default_network_class_of_service: defaultNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_array=True),
        E(
            "default_network_class_of_service", "defaultNetworkClassOfService",
            OCI.DefaultNetworkClassOfService, is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: "List[str]" = Field(type=list, required=False, mutable=False)
    default_network_class_of_service: "OCI.DefaultNetworkClassOfService" = Field(
        type=OCI.DefaultNetworkClassOfService, required=True, mutable=False,
    )


class GroupNetworkClassOfServiceUnassignListRequest21(OCIRequest):
    """
    Unassign a list of Network Classes of Service from a group.

    If the default Network Class of Service is being unassigned, a new one must be
    specified unless there are no more Network Classes of Service assigned to the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        network_class_of_service: networkClassOfService
        default_network_class_of_service: defaultNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_array=True),
        E(
            "default_network_class_of_service", "defaultNetworkClassOfService",
            OCI.DefaultNetworkClassOfService, is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: "List[str]" = Field(type=list, required=False, mutable=False)
    default_network_class_of_service: "OCI.DefaultNetworkClassOfService" = Field(
        type=OCI.DefaultNetworkClassOfService, required=True, mutable=False,
    )


class GroupOutgoingCallingPlanDepartmentAuthorizationCodeAddListRequest(OCIRequest):
    """
    Add a list of authorization codes to the group's default or a department.

    When department is not specified, it is for the group default.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_key: departmentKey
        code_entry: codeEntry
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_key", "departmentKey", OCI.DepartmentKey, is_complex=True),
        E(
            "code_entry", "codeEntry", OCI.OutgoingCallingPlanAuthorizationCodeEntry,
            is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_key: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    code_entry: "OCI.OutgoingCallingPlanAuthorizationCodeEntry" = Field(
        type=OCI.OutgoingCallingPlanAuthorizationCodeEntry, required=True, mutable=False,
    )


class GroupOutgoingCallingPlanDepartmentAuthorizationCodeDeleteListRequest(OCIRequest):
    """
    Delete a list of authorization codes from the group's default or a department.

    When department is not specified, it is for the group default.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_key: departmentKey
        code: code
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_key", "departmentKey", OCI.DepartmentKey, is_complex=True),
        E("code", "code", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_key: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    code: str = Field(type=str, required=True, mutable=False)


class GroupOutgoingCallingPlanDepartmentAuthorizationCodeGetListRequest(OCIRequest):
    """
    Request the list of authorization codes for a group default or a department.

    When department is not specified, it is for the group default.

    The response is either a
    ``GroupOutgoingCallingPlanDepartmentAuthorizationCodeGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department_key: departmentKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department_key", "departmentKey", OCI.DepartmentKey, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department_key: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )


class GroupPreferredCarrierGroupModifyRequest(OCIRequest):
    """
    Modifies the currently configured carriers for a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        intra_lata_carrier: intraLataCarrier
        inter_lata_carrier: interLataCarrier
        international_carrier: internationalCarrier
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "intra_lata_carrier", "intraLataCarrier", OCI.GroupPreferredCarrierNameModify,
            is_complex=True,
        ),
        E(
            "inter_lata_carrier", "interLataCarrier", OCI.GroupPreferredCarrierNameModify,
            is_complex=True,
        ),
        E(
            "international_carrier", "internationalCarrier",
            OCI.GroupPreferredCarrierNameModify, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    intra_lata_carrier: "OCI.GroupPreferredCarrierNameModify" = Field(
        type=OCI.GroupPreferredCarrierNameModify, required=False, mutable=False,
    )
    inter_lata_carrier: "OCI.GroupPreferredCarrierNameModify" = Field(
        type=OCI.GroupPreferredCarrierNameModify, required=False, mutable=False,
    )
    international_carrier: "OCI.GroupPreferredCarrierNameModify" = Field(
        type=OCI.GroupPreferredCarrierNameModify, required=False, mutable=False,
    )


class GroupRoutePointAddDNISRequest(OCIRequest):
    """
    Add a Route Point DNIS.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
        dnis_phone_number: dnisPhoneNumber
        extension: extension
        use_custom_clid_settings: useCustomCLIDSettings
        calling_line_id_phone_number: callingLineIdPhoneNumber
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        use_custom_dnis_announcement_settings: useCustomDnisAnnouncementSettings
        allow_outgoing_acd_call: allowOutgoingACDCall
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
        E("dnis_phone_number", "dnisPhoneNumber", str),
        E("extension", "extension", str),
        E("use_custom_clid_settings", "useCustomCLIDSettings", bool, is_required=True),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("calling_line_id_last_name", "callingLineIdLastName", str),
        E("calling_line_id_first_name", "callingLineIdFirstName", str),
        E(
            "use_custom_dnis_announcement_settings", "useCustomDnisAnnouncementSettings",
            bool, is_required=True,
        ),
        E("allow_outgoing_acd_call", "allowOutgoingACDCall", bool, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)
    dnis_phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    use_custom_clid_settings: bool = Field(type=bool, required=True, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=False, mutable=False)
    use_custom_dnis_announcement_settings: bool = Field(
        type=bool, required=True, mutable=False,
    )
    allow_outgoing_acd_call: bool = Field(type=bool, required=True, mutable=False)


class GroupRoutePointDeleteDNISRequest(OCIRequest):
    """
    Delete a route point's DNIS.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupRoutePointExternalSystemGetAssignedRoutePointListRequest(OCIRequest):
    """
    Request a list of route points within in a group that have a given external system
    assigned.

    The response is either
    ``GroupRoutePointExternalSystemGetAssignedRoutePointListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        external_system: externalSystem
        response_size_limit: responseSizeLimit
        search_criteria_route_point_name: searchCriteriaRoutePointName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("external_system", "externalSystem", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_route_point_name", "searchCriteriaRoutePointName",
            OCI.SearchCriteriaRoutePointName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    external_system: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_route_point_name: "List[OCI.SearchCriteriaRoutePointName]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupRoutePointGetDNISAgentListRequest(OCIRequest):
    """
    Get a list of agent who selected the DNIS as the outgoing call.

    The response is either ``GroupRoutePointGetDNISAgentListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupRoutePointGetDNISAnnouncementRequest(OCIRequest):
    """
    Get a route point's DNIS Announcements The response is either a
    ``GroupRoutePointGetDNISAnnouncementResponse()`` or an ``ErrorResponse()``.

    Replaced by: ``GroupRoutePointGetDNISAnnouncementRequest19()``.

    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupRoutePointGetDNISAnnouncementRequest19(OCIRequest):
    """
    Get a route point's DNIS Announcements The response is either a
    ``GroupRoutePointGetDNISAnnouncementResponse19()`` or an ``ErrorResponse()``.


    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupRoutePointGetDNISAnnouncementRequest20(OCIRequest):
    """
    Get a route point's DNIS Announcements The response is either a
    ``GroupRoutePointGetDNISAnnouncementResponse20()`` or an ``ErrorResponse()``.


    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupRoutePointGetDNISRequest(OCIRequest):
    """
    Get a route point's DNIS.

    The response is either a ``GroupRoutePointGetDNISResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)


class GroupRoutePointGetInstanceListRequest(OCIRequest):
    """
    Get a list of Route Point instances within a group.

    It is possible to search by various criteria to restrict the number of rows returned.

    The response is either ``GroupRoutePointGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
        response_size_limit: responseSizeLimit
        search_criteria_route_point_name: searchCriteriaRoutePointName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_route_point_name", "searchCriteriaRoutePointName",
            OCI.SearchCriteriaRoutePointName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_route_point_name: "List[OCI.SearchCriteriaRoutePointName]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupRoutePointModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of Route Point instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupRoutePointModifyDNISRequest(OCIRequest):
    """
    Modify a route point's DNIS settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
        new_dnis_name: newDNISName
        dnis_phone_number: dnisPhoneNumber
        extension: extension
        use_custom_clid_settings: useCustomCLIDSettings
        calling_line_id_phone_number: callingLineIdPhoneNumber
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        use_custom_dnis_announcement_settings: useCustomDnisAnnouncementSettings
        allow_outgoing_acd_call: allowOutgoingACDCall
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
        E("new_dnis_name", "newDNISName", str),
        E("dnis_phone_number", "dnisPhoneNumber", str),
        E("extension", "extension", str),
        E("use_custom_clid_settings", "useCustomCLIDSettings", bool),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("calling_line_id_last_name", "callingLineIdLastName", str),
        E("calling_line_id_first_name", "callingLineIdFirstName", str),
        E("use_custom_dnis_announcement_settings", "useCustomDnisAnnouncementSettings", bool),
        E("allow_outgoing_acd_call", "allowOutgoingACDCall", bool),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)
    new_dnis_name: str = Field(type=str, required=False, mutable=False)
    dnis_phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    use_custom_clid_settings: bool = Field(type=bool, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=False, mutable=False)
    use_custom_dnis_announcement_settings: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_outgoing_acd_call: bool = Field(type=bool, required=False, mutable=False)


class GroupRoutePointQueueCallDispositionCodeSettingsModifyRequest(OCIRequest):
    """
    Modify the queue level data associated with Route Point Agents Unavailable Code
    Settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        enable_call_disposition_codes: enableCallDispositionCodes
        include_organization_codes: includeOrganizationCodes
        force_use_of_call_disposition_codes: forceUseOfCallDispositionCodes
        default_call_disposition_code: defaultCallDispositionCode
        call_disposition_code_activation: callDispositionCodeActivation
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("enable_call_disposition_codes", "enableCallDispositionCodes", bool),
        E("include_organization_codes", "includeOrganizationCodes", bool),
        E("force_use_of_call_disposition_codes", "forceUseOfCallDispositionCodes", bool),
        E(
            "default_call_disposition_code", "defaultCallDispositionCode",
            OCI.CallDispositionCodeWithLevel, is_complex=True,
        ),
        E(
            "call_disposition_code_activation", "callDispositionCodeActivation",
            OCI.CallDispositionCodeActivation, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    enable_call_disposition_codes: bool = Field(type=bool, required=False, mutable=False)
    include_organization_codes: bool = Field(type=bool, required=False, mutable=False)
    force_use_of_call_disposition_codes: bool = Field(
        type=bool, required=False, mutable=False,
    )
    default_call_disposition_code: "OCI.CallDispositionCodeWithLevel" = Field(
        type=OCI.CallDispositionCodeWithLevel, required=False, mutable=False,
    )
    call_disposition_code_activation: "OCI.CallDispositionCodeActivation" = Field(
        type=OCI.CallDispositionCodeActivation, required=False, mutable=False,
    )


class GroupScheduleAddEventRequest(OCIRequest):
    """
    Add an event to group schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after the startDate.  The endDate element is set to the sum of the
    adjusted starDate element value and the event duration.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_key: scheduleKey
        event_name: eventName
        start_date: startDate
        all_day_event: allDayEvent
        start_time: startTime
        end_time: endTime
        end_date: endDate
        recurrence: recurrence
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
        E("start_date", "startDate", str, is_required=True),
        E("all_day_event", "allDayEvent", bool),
        E("start_time", "startTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_time", "endTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_date", "endDate", str, is_required=True),
        E("recurrence", "recurrence", OCI.Recurrence, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)
    start_date: str = Field(type=str, required=True, mutable=False)
    all_day_event: bool = Field(type=bool, required=False, mutable=False)
    start_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_date: str = Field(type=str, required=True, mutable=False)
    recurrence: "OCI.Recurrence" = Field(type=OCI.Recurrence, required=False, mutable=False)


class GroupScheduleDeleteEventListRequest(OCIRequest):
    """
    Delete a list of events from a group schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_key: scheduleKey
        event_name: eventName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)


class GroupScheduleDeleteListRequest(OCIRequest):
    """
    Delete a list of group schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_key: scheduleKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )


class GroupScheduleGetEventListRequest(OCIRequest):
    """
    Get the list of events of a group schedule.

    The response is either a ``GroupScheduleGetEventListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_key: scheduleKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )


class GroupScheduleGetEventRequest(OCIRequest):
    """
    Get an event from a group schedule.

    The response is either a ``GroupScheduleGetEventResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_key: scheduleKey
        event_name: eventName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)


class GroupScheduleModifyEventRequest(OCIRequest):
    """
    Modify an event of a group schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after the startDate.  The endDate element is set to the sum of the
    adjusted starDate element value and the event duration.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_key: scheduleKey
        event_name: eventName
        new_event_name: newEventName
        start_date: startDate
        all_day_event: allDayEvent
        start_time: startTime
        end_time: endTime
        end_date: endDate
        recurrence: recurrence
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
        E("new_event_name", "newEventName", str),
        E("start_date", "startDate", str),
        E("all_day_event", "allDayEvent", bool),
        E("start_time", "startTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_time", "endTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_date", "endDate", str),
        E("recurrence", "recurrence", OCI.Recurrence, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)
    new_event_name: str = Field(type=str, required=False, mutable=False)
    start_date: str = Field(type=str, required=False, mutable=False)
    all_day_event: bool = Field(type=bool, required=False, mutable=False)
    start_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_date: str = Field(type=str, required=False, mutable=False)
    recurrence: "OCI.Recurrence" = Field(type=OCI.Recurrence, required=False, mutable=False)


class GroupScheduleModifyRequest(OCIRequest):
    """
    Modify a group schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        schedule_key: scheduleKey
        new_schedule_name: newScheduleName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("new_schedule_name", "newScheduleName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    new_schedule_name: str = Field(type=str, required=False, mutable=False)


class GroupSeriesCompletionModifyInstanceRequest(OCIRequest):
    """
    Modifies a Series Completion group.

    Replaces the entire list of users in the group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        user_id_list: userIdList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("user_id_list", "userIdList", OCI.ReplacementUserIdList, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupServiceScriptsGroupModifyRequest(OCIRequest):
    """
    Modify the group level data associated with Service Scripts Configuration.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        script_file: scriptFile
        script_url: scriptUrl
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("script_file", "scriptFile", OCI.ServiceScriptsFileResource, is_complex=True),
        E("script_url", "scriptUrl", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    script_file: "OCI.ServiceScriptsFileResource" = Field(
        type=OCI.ServiceScriptsFileResource, required=False, mutable=False,
    )
    script_url: str = Field(type=str, required=False, mutable=False)


class GroupSessionAdmissionControlGetAvailableDeviceListRequest(OCIRequest):
    """
    Request to get the list of devices can be assigned to session admission control group
    for the group.

    The response is either an
    ``GroupSessionAdmissionControlGetAvailableDeviceListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_device_mac_address: searchCriteriaDeviceMACAddress
        search_criteria_device_net_address: searchCriteriaDeviceNetAddress
        search_criteria_exact_device_type: searchCriteriaExactDeviceType
        search_criteria_exact_device_level: searchCriteriaExactDeviceLevel
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_mac_address", "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_net_address", "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_device_type", "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_level", "searchCriteriaExactDeviceLevel",
            OCI.SearchCriteriaExactDeviceLevel, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_mac_address: "List[OCI.SearchCriteriaDeviceMACAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_net_address: "List[OCI.SearchCriteriaDeviceNetAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_device_type: "OCI.SearchCriteriaExactDeviceType" = Field(
        type=OCI.SearchCriteriaExactDeviceType, required=False, mutable=False,
    )
    search_criteria_exact_device_level: "OCI.SearchCriteriaExactDeviceLevel" = Field(
        type=OCI.SearchCriteriaExactDeviceLevel, required=False, mutable=False,
    )


class GroupSessionAdmissionControlGroupAddDeviceListRequest(OCIRequest):
    """
    Request to add one ore more devices to a group level session admission control group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        devices: devices
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("devices", "devices", OCI.AccessDevice, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    devices: "OCI.AccessDevice" = Field(type=OCI.AccessDevice, required=True, mutable=False)


class GroupSessionAdmissionControlGroupAddRequest(OCIRequest):
    """
    Request to add a session admission control group for the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        max_session: maxSession
        max_user_originating_sessions: maxUserOriginatingSessions
        max_user_terminating_sessions: maxUserTerminatingSessions
        reserved_session: reservedSession
        reserved_user_originating_sessions: reservedUserOriginatingSessions
        reserved_user_terminating_sessions: reservedUserTerminatingSessions
        become_default_group: becomeDefaultGroup
        count_intra_sac_group_sessions: countIntraSACGroupSessions
        devices: devices
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("max_session", "maxSession", int, is_required=True),
        E("max_user_originating_sessions", "maxUserOriginatingSessions", int),
        E("max_user_terminating_sessions", "maxUserTerminatingSessions", int),
        E("reserved_session", "reservedSession", int, is_required=True),
        E("reserved_user_originating_sessions", "reservedUserOriginatingSessions", int),
        E("reserved_user_terminating_sessions", "reservedUserTerminatingSessions", int),
        E("become_default_group", "becomeDefaultGroup", bool, is_required=True),
        E(
            "count_intra_sac_group_sessions", "countIntraSACGroupSessions", bool,
            is_required=True,
        ),
        E("devices", "devices", OCI.AccessDevice, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    max_session: int = Field(type=int, required=True, mutable=False)
    max_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_session: int = Field(type=int, required=True, mutable=False)
    reserved_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    become_default_group: bool = Field(type=bool, required=True, mutable=False)
    count_intra_sac_group_sessions: bool = Field(type=bool, required=True, mutable=False)
    devices: "List[OCI.AccessDevice]" = Field(type=list, required=False, mutable=False)


class GroupSessionAdmissionControlGroupAddRequest19sp1(OCIRequest):
    """
    Request to add a session admission control group for the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        max_session: maxSession
        max_user_originating_sessions: maxUserOriginatingSessions
        max_user_terminating_sessions: maxUserTerminatingSessions
        reserved_session: reservedSession
        reserved_user_originating_sessions: reservedUserOriginatingSessions
        reserved_user_terminating_sessions: reservedUserTerminatingSessions
        become_default_group: becomeDefaultGroup
        count_intra_sac_group_sessions: countIntraSACGroupSessions
        devices: devices
        block_emergency_and_repair_calls_due_to_sac_limits:
            blockEmergencyAndRepairCallsDueToSACLimits
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("max_session", "maxSession", int, is_required=True),
        E("max_user_originating_sessions", "maxUserOriginatingSessions", int),
        E("max_user_terminating_sessions", "maxUserTerminatingSessions", int),
        E("reserved_session", "reservedSession", int, is_required=True),
        E("reserved_user_originating_sessions", "reservedUserOriginatingSessions", int),
        E("reserved_user_terminating_sessions", "reservedUserTerminatingSessions", int),
        E("become_default_group", "becomeDefaultGroup", bool, is_required=True),
        E(
            "count_intra_sac_group_sessions", "countIntraSACGroupSessions", bool,
            is_required=True,
        ),
        E("devices", "devices", OCI.AccessDevice, is_complex=True, is_array=True),
        E(
            "block_emergency_and_repair_calls_due_to_sac_limits",
            "blockEmergencyAndRepairCallsDueToSACLimits", bool, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    max_session: int = Field(type=int, required=True, mutable=False)
    max_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_session: int = Field(type=int, required=True, mutable=False)
    reserved_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    become_default_group: bool = Field(type=bool, required=True, mutable=False)
    count_intra_sac_group_sessions: bool = Field(type=bool, required=True, mutable=False)
    devices: "List[OCI.AccessDevice]" = Field(type=list, required=False, mutable=False)
    block_emergency_and_repair_calls_due_to_sac_limits: bool = Field(
        type=bool, required=True, mutable=False,
    )


class GroupSessionAdmissionControlGroupDeleteDeviceListRequest(OCIRequest):
    """
    Request to delete one or more devices from a group level session admission control
    group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        devices: devices
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("devices", "devices", OCI.AccessDevice, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    devices: "OCI.AccessDevice" = Field(type=OCI.AccessDevice, required=True, mutable=False)


class GroupTimeScheduleAddRequest(OCIRequest):
    """
    Add a time schedule to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        time_schedule_name: timeScheduleName
        time_interval01: timeInterval01
        time_interval02: timeInterval02
        time_interval03: timeInterval03
        time_interval04: timeInterval04
        time_interval05: timeInterval05
        time_interval06: timeInterval06
        time_interval07: timeInterval07
        time_interval08: timeInterval08
        time_interval09: timeInterval09
        time_interval10: timeInterval10
        time_interval11: timeInterval11
        time_interval12: timeInterval12
        time_interval13: timeInterval13
        time_interval14: timeInterval14
        time_interval15: timeInterval15
        time_interval16: timeInterval16
        time_interval17: timeInterval17
        time_interval18: timeInterval18
        time_interval19: timeInterval19
        time_interval20: timeInterval20
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
        E("time_interval01", "timeInterval01", OCI.TimeInterval, is_complex=True),
        E("time_interval02", "timeInterval02", OCI.TimeInterval, is_complex=True),
        E("time_interval03", "timeInterval03", OCI.TimeInterval, is_complex=True),
        E("time_interval04", "timeInterval04", OCI.TimeInterval, is_complex=True),
        E("time_interval05", "timeInterval05", OCI.TimeInterval, is_complex=True),
        E("time_interval06", "timeInterval06", OCI.TimeInterval, is_complex=True),
        E("time_interval07", "timeInterval07", OCI.TimeInterval, is_complex=True),
        E("time_interval08", "timeInterval08", OCI.TimeInterval, is_complex=True),
        E("time_interval09", "timeInterval09", OCI.TimeInterval, is_complex=True),
        E("time_interval10", "timeInterval10", OCI.TimeInterval, is_complex=True),
        E("time_interval11", "timeInterval11", OCI.TimeInterval, is_complex=True),
        E("time_interval12", "timeInterval12", OCI.TimeInterval, is_complex=True),
        E("time_interval13", "timeInterval13", OCI.TimeInterval, is_complex=True),
        E("time_interval14", "timeInterval14", OCI.TimeInterval, is_complex=True),
        E("time_interval15", "timeInterval15", OCI.TimeInterval, is_complex=True),
        E("time_interval16", "timeInterval16", OCI.TimeInterval, is_complex=True),
        E("time_interval17", "timeInterval17", OCI.TimeInterval, is_complex=True),
        E("time_interval18", "timeInterval18", OCI.TimeInterval, is_complex=True),
        E("time_interval19", "timeInterval19", OCI.TimeInterval, is_complex=True),
        E("time_interval20", "timeInterval20", OCI.TimeInterval, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    time_schedule_name: str = Field(type=str, required=True, mutable=False)
    time_interval01: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval02: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval03: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval04: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval05: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval06: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval07: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval08: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval09: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval10: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval11: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval12: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval13: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval14: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval15: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval16: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval17: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval18: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval19: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval20: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )


class GroupTimeScheduleModifyRequest(OCIRequest):
    """
    Modify a specified time schedule in a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        time_schedule_name: timeScheduleName
        new_time_schedule_name: newTimeScheduleName
        time_interval01: timeInterval01
        time_interval02: timeInterval02
        time_interval03: timeInterval03
        time_interval04: timeInterval04
        time_interval05: timeInterval05
        time_interval06: timeInterval06
        time_interval07: timeInterval07
        time_interval08: timeInterval08
        time_interval09: timeInterval09
        time_interval10: timeInterval10
        time_interval11: timeInterval11
        time_interval12: timeInterval12
        time_interval13: timeInterval13
        time_interval14: timeInterval14
        time_interval15: timeInterval15
        time_interval16: timeInterval16
        time_interval17: timeInterval17
        time_interval18: timeInterval18
        time_interval19: timeInterval19
        time_interval20: timeInterval20
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
        E("new_time_schedule_name", "newTimeScheduleName", str),
        E("time_interval01", "timeInterval01", OCI.TimeInterval, is_complex=True),
        E("time_interval02", "timeInterval02", OCI.TimeInterval, is_complex=True),
        E("time_interval03", "timeInterval03", OCI.TimeInterval, is_complex=True),
        E("time_interval04", "timeInterval04", OCI.TimeInterval, is_complex=True),
        E("time_interval05", "timeInterval05", OCI.TimeInterval, is_complex=True),
        E("time_interval06", "timeInterval06", OCI.TimeInterval, is_complex=True),
        E("time_interval07", "timeInterval07", OCI.TimeInterval, is_complex=True),
        E("time_interval08", "timeInterval08", OCI.TimeInterval, is_complex=True),
        E("time_interval09", "timeInterval09", OCI.TimeInterval, is_complex=True),
        E("time_interval10", "timeInterval10", OCI.TimeInterval, is_complex=True),
        E("time_interval11", "timeInterval11", OCI.TimeInterval, is_complex=True),
        E("time_interval12", "timeInterval12", OCI.TimeInterval, is_complex=True),
        E("time_interval13", "timeInterval13", OCI.TimeInterval, is_complex=True),
        E("time_interval14", "timeInterval14", OCI.TimeInterval, is_complex=True),
        E("time_interval15", "timeInterval15", OCI.TimeInterval, is_complex=True),
        E("time_interval16", "timeInterval16", OCI.TimeInterval, is_complex=True),
        E("time_interval17", "timeInterval17", OCI.TimeInterval, is_complex=True),
        E("time_interval18", "timeInterval18", OCI.TimeInterval, is_complex=True),
        E("time_interval19", "timeInterval19", OCI.TimeInterval, is_complex=True),
        E("time_interval20", "timeInterval20", OCI.TimeInterval, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    time_schedule_name: str = Field(type=str, required=True, mutable=False)
    new_time_schedule_name: str = Field(type=str, required=False, mutable=False)
    time_interval01: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval02: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval03: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval04: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval05: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval06: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval07: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval08: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval09: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval10: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval11: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval12: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval13: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval14: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval15: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval16: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval17: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval18: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval19: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval20: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )


class GroupTrunkGroupDeleteInstanceRequest14sp4(OCIRequest):
    """
    Delete a Trunk Group Instance from a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest14sp4(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest14sp5(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse14sp5()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name".

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest14sp9(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse14sp9()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name".

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest15(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse15()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name".

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest15sp2(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse15sp2()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name".

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest17(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse17()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name".

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest17sp3(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse17sp3()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name".
    Replaced by: ``GroupTrunkGroupGetInstanceRequest17sp4()``

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest17sp4(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse17sp4()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name",
    "Phone Number", "Extension", "Department", "Email Address".

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest19(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse19()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name",
    "Phone Number", "Extension", "Department", "Email Address". Replaced by
    ``GroupTrunkGroupGetInstanceRequest19sp1()``.

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest19V2(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse19V2()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name",
    "Phone Number", "Extension", "Department", "Email Address". Replaced by
    GroupTrunkGroupGetInstanceRequest19sp1V2.

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest19sp1(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse19sp1()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name",
    "Phone Number", "Extension", "Department", "Email Address". Replaced by
    GroupTrunkGroupGetInstanceRequest19sp1V2.

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest20sp1(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse20sp1()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name",
    "Phone Number", "Extension", "Department", "Email Address". Replaced by:
    ``GroupTrunkGroupGetInstanceRequest21()``

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupGetInstanceRequest21(OCIRequest):
    """
    Get a Trunk Group Instance's profile.

    The response is either a ``GroupTrunkGroupGetInstanceResponse21()`` or an
    ``ErrorResponse()``. The response contains a hosted user table with column headings:
    "User Id", "Last Name", "First Name", "Hiragana Last Name", "Hiragana First Name",
    "Phone Number", "Extension", "Department", "Email Address".

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupModifyInstanceRequest14sp4(OCIRequest):
    """
    Modify a Trunk Group Instance in a group.

    The access device cannot be modified or cleared if there are any users assigned to the
    Trunk Group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
        new_name: newName
        pilot_user_id: pilotUserId
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        unreachable_destination_trap_initial_calls: unreachableDestinationTrapInitialCalls
        unreachable_destination_trap_offset_calls: unreachableDestinationTrapOffsetCalls
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id_list: hostedUserIdList
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        use_pilot_user_calling_line_identity: usePilotUserCallingLineIdentity
        use_pilot_user_charge_number: usePilotUserChargeNumber
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("new_name", "newName", str),
        E("pilot_user_id", "pilotUserId", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls", int),
        E("capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls", int,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls", int,
        ),
        E("invitation_timeout", "invitationTimeout", int),
        E("require_authentication", "requireAuthentication", bool),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E(
            "hosted_user_id_list", "hostedUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E("include_trunk_group_identity", "includeTrunkGroupIdentity", bool),
        E("include_dtg_identity", "includeDtgIdentity", bool),
        E("enable_network_address_identity", "enableNetworkAddressIdentity", bool),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool),
        E("allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool),
        E("use_pilot_user_calling_line_identity", "usePilotUserCallingLineIdentity", bool),
        E("use_pilot_user_charge_number", "usePilotUserChargeNumber", bool),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    new_name: str = Field(type=str, required=False, mutable=False)
    pilot_user_id: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=False, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=False, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    unreachable_destination_trap_initial_calls: int = Field(
        type=int, required=False, mutable=False,
    )
    unreachable_destination_trap_offset_calls: int = Field(
        type=int, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=False, mutable=False)
    require_authentication: bool = Field(type=bool, required=False, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=False, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=False, mutable=False)
    enable_network_address_identity: bool = Field(type=bool, required=False, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=False, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=False, mutable=False)
    use_pilot_user_calling_line_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_pilot_user_charge_number: bool = Field(type=bool, required=False, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )


class GroupTrunkGroupModifyInstanceRequest15(OCIRequest):
    """
    Modify a Trunk Group Instance in a group.

    The access device cannot be modified or cleared if there are any users assigned to the
    Trunk Group.  The command will fail if enableNetworkAddressIdentity is set and
    administrator is not System/Provisioning level administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``GroupTrunkGroupModifyInstanceRequest19sp1()``.

    Attributes:
        trunk_group_key: trunkGroupKey
        new_name: newName
        pilot_user_id: pilotUserId
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id_list: hostedUserIdList
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        allow_termination_to_trunk_group_identity: allowTerminationToTrunkGroupIdentity
        allow_termination_to_dtg_identity: allowTerminationToDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        include_trunk_group_identity_for_network_calls:
            includeTrunkGroupIdentityForNetworkCalls
        include_otg_identity_for_network_calls: includeOtgIdentityForNetworkCalls
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_policy: pilotUserCallingLineIdentityPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
        prefix_enabled: prefixEnabled
        prefix: prefix
        stateful_rerouting_enabled: statefulReroutingEnabled
        send_continuous_options_message: sendContinuousOptionsMessage
        continuous_options_sending_interval_seconds:
            continuousOptionsSendingIntervalSeconds
        failure_options_sending_interval_seconds: failureOptionsSendingIntervalSeconds
        failure_threshold_counter: failureThresholdCounter
        success_threshold_counter: successThresholdCounter
        invite_failure_threshold_counter: inviteFailureThresholdCounter
        invite_failure_threshold_window_seconds: inviteFailureThresholdWindowSeconds
        pilot_user_calling_line_asserted_identity_policy:
            pilotUserCallingLineAssertedIdentityPolicy
        use_system_calling_line_asserted_identity_policy:
            useSystemCallingLineAssertedIdentityPolicy
        pilot_user_call_optimization_policy: pilotUserCallOptimizationPolicy
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("new_name", "newName", str),
        E("pilot_user_id", "pilotUserId", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls", int),
        E("capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int),
        E("require_authentication", "requireAuthentication", bool),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E(
            "hosted_user_id_list", "hostedUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity", bool,
        ),
        E("allow_termination_to_dtg_identity", "allowTerminationToDtgIdentity", bool),
        E("include_trunk_group_identity", "includeTrunkGroupIdentity", bool),
        E("include_dtg_identity", "includeDtgIdentity", bool),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls", bool,
        ),
        E(
            "include_otg_identity_for_network_calls", "includeOtgIdentityForNetworkCalls",
            bool,
        ),
        E("enable_network_address_identity", "enableNetworkAddressIdentity", bool),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool),
        E("allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy", str,
        ),
        E("pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool),
        E("prefix_enabled", "prefixEnabled", bool),
        E("prefix", "prefix", str),
        E("stateful_rerouting_enabled", "statefulReroutingEnabled", bool),
        E("send_continuous_options_message", "sendContinuousOptionsMessage", bool),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds", int,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds", int,
        ),
        E("failure_threshold_counter", "failureThresholdCounter", int),
        E("success_threshold_counter", "successThresholdCounter", int),
        E("invite_failure_threshold_counter", "inviteFailureThresholdCounter", int),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds", int,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy", str,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy", bool,
        ),
        E("pilot_user_call_optimization_policy", "pilotUserCallOptimizationPolicy", str),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    new_name: str = Field(type=str, required=False, mutable=False)
    pilot_user_id: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=False, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=False, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=False, mutable=False)
    require_authentication: bool = Field(type=bool, required=False, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    allow_termination_to_trunk_group_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_termination_to_dtg_identity: bool = Field(type=bool, required=False, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=False, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=False, mutable=False)
    include_trunk_group_identity_for_network_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    include_otg_identity_for_network_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_network_address_identity: bool = Field(type=bool, required=False, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=False, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=False, mutable=False)
    pilot_user_calling_line_identity_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=False, mutable=False)
    prefix_enabled: bool = Field(type=bool, required=False, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)
    stateful_rerouting_enabled: bool = Field(type=bool, required=False, mutable=False)
    send_continuous_options_message: bool = Field(type=bool, required=False, mutable=False)
    continuous_options_sending_interval_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    failure_options_sending_interval_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    failure_threshold_counter: int = Field(type=int, required=False, mutable=False)
    success_threshold_counter: int = Field(type=int, required=False, mutable=False)
    invite_failure_threshold_counter: int = Field(type=int, required=False, mutable=False)
    invite_failure_threshold_window_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    pilot_user_calling_line_asserted_identity_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_system_calling_line_asserted_identity_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    pilot_user_call_optimization_policy: str = Field(type=str, required=False, mutable=False)


class GroupTrunkGroupModifyInstanceRequest19sp1(OCIRequest):
    """
    Modify a Trunk Group Instance in a group.

    The access device cannot be modified or cleared if there are any users assigned to the
    Trunk Group.  The command will fail if enableNetworkAddressIdentity is set and
    administrator is not System/Provisioning level administrator.  Following attributes
    are only used in IMS mode: implicitRegistrationSetSupportPolicy
    useSystemImplicitRegistrationSetSupportPolicy
    sipIdentityForPilotAndProxyTrunkModesPolicy
    useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``GroupTrunkGroupModifyInstanceRequest20sp1()``

    Attributes:
        trunk_group_key: trunkGroupKey
        new_name: newName
        pilot_user_id: pilotUserId
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id_list: hostedUserIdList
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        allow_termination_to_trunk_group_identity: allowTerminationToTrunkGroupIdentity
        allow_termination_to_dtg_identity: allowTerminationToDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        include_trunk_group_identity_for_network_calls:
            includeTrunkGroupIdentityForNetworkCalls
        include_otg_identity_for_network_calls: includeOtgIdentityForNetworkCalls
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_for_external_calls_policy:
            pilotUserCallingLineIdentityForExternalCallsPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
        prefix_enabled: prefixEnabled
        prefix: prefix
        stateful_rerouting_enabled: statefulReroutingEnabled
        send_continuous_options_message: sendContinuousOptionsMessage
        continuous_options_sending_interval_seconds:
            continuousOptionsSendingIntervalSeconds
        failure_options_sending_interval_seconds: failureOptionsSendingIntervalSeconds
        failure_threshold_counter: failureThresholdCounter
        success_threshold_counter: successThresholdCounter
        invite_failure_threshold_counter: inviteFailureThresholdCounter
        invite_failure_threshold_window_seconds: inviteFailureThresholdWindowSeconds
        pilot_user_calling_line_asserted_identity_policy:
            pilotUserCallingLineAssertedIdentityPolicy
        use_system_calling_line_asserted_identity_policy:
            useSystemCallingLineAssertedIdentityPolicy
        pilot_user_call_optimization_policy: pilotUserCallOptimizationPolicy
        clid_source_for_screened_calls_policy: clidSourceForScreenedCallsPolicy
        use_system_clid_source_for_screened_calls_policy:
            useSystemCLIDSourceForScreenedCallsPolicy
        user_lookup_policy: userLookupPolicy
        use_system_user_lookup_policy: useSystemUserLookupPolicy
        pilot_user_calling_line_identity_for_emergency_calls_policy:
            pilotUserCallingLineIdentityForEmergencyCallsPolicy
        implicit_registration_set_support_policy: implicitRegistrationSetSupportPolicy
        use_system_implicit_registration_set_support_policy:
            useSystemImplicitRegistrationSetSupportPolicy
        sip_identity_for_pilot_and_proxy_trunk_modes_policy:
            sipIdentityForPilotAndProxyTrunkModesPolicy
        use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy:
            useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy
        use_system_support_connected_identity_policy:
            useSystemSupportConnectedIdentityPolicy
        support_connected_identity_policy: supportConnectedIdentityPolicy
        use_system_options_message_response_status_codes:
            useSystemOptionsMessageResponseStatusCodes
        delete_options_message_response_status_code:
            deleteOptionsMessageResponseStatusCode
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("new_name", "newName", str),
        E("pilot_user_id", "pilotUserId", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls", int),
        E("capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int),
        E("require_authentication", "requireAuthentication", bool),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E(
            "hosted_user_id_list", "hostedUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity", bool,
        ),
        E("allow_termination_to_dtg_identity", "allowTerminationToDtgIdentity", bool),
        E("include_trunk_group_identity", "includeTrunkGroupIdentity", bool),
        E("include_dtg_identity", "includeDtgIdentity", bool),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls", bool,
        ),
        E(
            "include_otg_identity_for_network_calls", "includeOtgIdentityForNetworkCalls",
            bool,
        ),
        E("enable_network_address_identity", "enableNetworkAddressIdentity", bool),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool),
        E("allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy", str,
        ),
        E("pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool),
        E("prefix_enabled", "prefixEnabled", bool),
        E("prefix", "prefix", str),
        E("stateful_rerouting_enabled", "statefulReroutingEnabled", bool),
        E("send_continuous_options_message", "sendContinuousOptionsMessage", bool),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds", int,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds", int,
        ),
        E("failure_threshold_counter", "failureThresholdCounter", int),
        E("success_threshold_counter", "successThresholdCounter", int),
        E("invite_failure_threshold_counter", "inviteFailureThresholdCounter", int),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds", int,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy", str,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy", bool,
        ),
        E("pilot_user_call_optimization_policy", "pilotUserCallOptimizationPolicy", str),
        E("clid_source_for_screened_calls_policy", "clidSourceForScreenedCallsPolicy", str),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy", bool,
        ),
        E("user_lookup_policy", "userLookupPolicy", str),
        E("use_system_user_lookup_policy", "useSystemUserLookupPolicy", bool),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy", str,
        ),
        E(
            "implicit_registration_set_support_policy",
            "implicitRegistrationSetSupportPolicy", str,
        ),
        E(
            "use_system_implicit_registration_set_support_policy",
            "useSystemImplicitRegistrationSetSupportPolicy", bool,
        ),
        E(
            "sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "sipIdentityForPilotAndProxyTrunkModesPolicy", str,
        ),
        E(
            "use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy", bool,
        ),
        E(
            "use_system_support_connected_identity_policy",
            "useSystemSupportConnectedIdentityPolicy", bool,
        ),
        E("support_connected_identity_policy", "supportConnectedIdentityPolicy", str),
        E(
            "use_system_options_message_response_status_codes",
            "useSystemOptionsMessageResponseStatusCodes", bool,
        ),
        E(
            "delete_options_message_response_status_code",
            "deleteOptionsMessageResponseStatusCode", str, is_array=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    new_name: str = Field(type=str, required=False, mutable=False)
    pilot_user_id: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=False, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=False, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=False, mutable=False)
    require_authentication: bool = Field(type=bool, required=False, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    allow_termination_to_trunk_group_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_termination_to_dtg_identity: bool = Field(type=bool, required=False, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=False, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=False, mutable=False)
    include_trunk_group_identity_for_network_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    include_otg_identity_for_network_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_network_address_identity: bool = Field(type=bool, required=False, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=False, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=False, mutable=False)
    pilot_user_calling_line_identity_for_external_calls_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=False, mutable=False)
    prefix_enabled: bool = Field(type=bool, required=False, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)
    stateful_rerouting_enabled: bool = Field(type=bool, required=False, mutable=False)
    send_continuous_options_message: bool = Field(type=bool, required=False, mutable=False)
    continuous_options_sending_interval_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    failure_options_sending_interval_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    failure_threshold_counter: int = Field(type=int, required=False, mutable=False)
    success_threshold_counter: int = Field(type=int, required=False, mutable=False)
    invite_failure_threshold_counter: int = Field(type=int, required=False, mutable=False)
    invite_failure_threshold_window_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    pilot_user_calling_line_asserted_identity_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_system_calling_line_asserted_identity_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    pilot_user_call_optimization_policy: str = Field(type=str, required=False, mutable=False)
    clid_source_for_screened_calls_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_system_clid_source_for_screened_calls_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    user_lookup_policy: str = Field(type=str, required=False, mutable=False)
    use_system_user_lookup_policy: bool = Field(type=bool, required=False, mutable=False)
    pilot_user_calling_line_identity_for_emergency_calls_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    implicit_registration_set_support_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_system_implicit_registration_set_support_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    sip_identity_for_pilot_and_proxy_trunk_modes_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_system_support_connected_identity_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    support_connected_identity_policy: str = Field(type=str, required=False, mutable=False)
    use_system_options_message_response_status_codes: bool = Field(
        type=bool, required=False, mutable=False,
    )
    delete_options_message_response_status_code: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupTrunkGroupModifyInstanceRequest20sp1(OCIRequest):
    """
    Modify a Trunk Group Instance in a group.

    The access device cannot be modified or cleared if there are any users assigned to the
    Trunk Group.  The command will fail if enableNetworkAddressIdentity is set and
    administrator is not System/Provisioning level administrator.  Following attributes
    are only used in IMS mode: implicitRegistrationSetSupportPolicy
    useSystemImplicitRegistrationSetSupportPolicy
    sipIdentityForPilotAndProxyTrunkModesPolicy
    useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
        new_name: newName
        pilot_user_id: pilotUserId
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id_list: hostedUserIdList
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        allow_termination_to_trunk_group_identity: allowTerminationToTrunkGroupIdentity
        allow_termination_to_dtg_identity: allowTerminationToDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        include_trunk_group_identity_for_network_calls:
            includeTrunkGroupIdentityForNetworkCalls
        include_otg_identity_for_network_calls: includeOtgIdentityForNetworkCalls
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_for_external_calls_policy:
            pilotUserCallingLineIdentityForExternalCallsPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
        prefix_enabled: prefixEnabled
        prefix: prefix
        stateful_rerouting_enabled: statefulReroutingEnabled
        send_continuous_options_message: sendContinuousOptionsMessage
        continuous_options_sending_interval_seconds:
            continuousOptionsSendingIntervalSeconds
        failure_options_sending_interval_seconds: failureOptionsSendingIntervalSeconds
        failure_threshold_counter: failureThresholdCounter
        success_threshold_counter: successThresholdCounter
        invite_failure_threshold_counter: inviteFailureThresholdCounter
        invite_failure_threshold_window_seconds: inviteFailureThresholdWindowSeconds
        pilot_user_calling_line_asserted_identity_policy:
            pilotUserCallingLineAssertedIdentityPolicy
        use_system_calling_line_asserted_identity_policy:
            useSystemCallingLineAssertedIdentityPolicy
        pilot_user_call_optimization_policy: pilotUserCallOptimizationPolicy
        clid_source_for_screened_calls_policy: clidSourceForScreenedCallsPolicy
        use_system_clid_source_for_screened_calls_policy:
            useSystemCLIDSourceForScreenedCallsPolicy
        user_lookup_policy: userLookupPolicy
        use_system_user_lookup_policy: useSystemUserLookupPolicy
        pilot_user_calling_line_identity_for_emergency_calls_policy:
            pilotUserCallingLineIdentityForEmergencyCallsPolicy
        implicit_registration_set_support_policy: implicitRegistrationSetSupportPolicy
        use_system_implicit_registration_set_support_policy:
            useSystemImplicitRegistrationSetSupportPolicy
        sip_identity_for_pilot_and_proxy_trunk_modes_policy:
            sipIdentityForPilotAndProxyTrunkModesPolicy
        use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy:
            useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy
        use_system_support_connected_identity_policy:
            useSystemSupportConnectedIdentityPolicy
        support_connected_identity_policy: supportConnectedIdentityPolicy
        use_system_options_message_response_status_codes:
            useSystemOptionsMessageResponseStatusCodes
        delete_options_message_response_status_code:
            deleteOptionsMessageResponseStatusCode
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("new_name", "newName", str),
        E("pilot_user_id", "pilotUserId", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls", int),
        E("capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int),
        E("require_authentication", "requireAuthentication", bool),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E(
            "hosted_user_id_list", "hostedUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity", bool,
        ),
        E("allow_termination_to_dtg_identity", "allowTerminationToDtgIdentity", bool),
        E("include_trunk_group_identity", "includeTrunkGroupIdentity", bool),
        E("include_dtg_identity", "includeDtgIdentity", bool),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls", bool,
        ),
        E(
            "include_otg_identity_for_network_calls", "includeOtgIdentityForNetworkCalls",
            bool,
        ),
        E("enable_network_address_identity", "enableNetworkAddressIdentity", bool),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool),
        E("allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy", str,
        ),
        E("pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool),
        E("prefix_enabled", "prefixEnabled", bool),
        E("prefix", "prefix", str),
        E("stateful_rerouting_enabled", "statefulReroutingEnabled", bool),
        E("send_continuous_options_message", "sendContinuousOptionsMessage", bool),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds", int,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds", int,
        ),
        E("failure_threshold_counter", "failureThresholdCounter", int),
        E("success_threshold_counter", "successThresholdCounter", int),
        E("invite_failure_threshold_counter", "inviteFailureThresholdCounter", int),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds", int,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy", str,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy", bool,
        ),
        E("pilot_user_call_optimization_policy", "pilotUserCallOptimizationPolicy", str),
        E("clid_source_for_screened_calls_policy", "clidSourceForScreenedCallsPolicy", str),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy", bool,
        ),
        E("user_lookup_policy", "userLookupPolicy", str),
        E("use_system_user_lookup_policy", "useSystemUserLookupPolicy", bool),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy", str,
        ),
        E(
            "implicit_registration_set_support_policy",
            "implicitRegistrationSetSupportPolicy", str,
        ),
        E(
            "use_system_implicit_registration_set_support_policy",
            "useSystemImplicitRegistrationSetSupportPolicy", bool,
        ),
        E(
            "sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "sipIdentityForPilotAndProxyTrunkModesPolicy", str,
        ),
        E(
            "use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy", bool,
        ),
        E(
            "use_system_support_connected_identity_policy",
            "useSystemSupportConnectedIdentityPolicy", bool,
        ),
        E("support_connected_identity_policy", "supportConnectedIdentityPolicy", str),
        E(
            "use_system_options_message_response_status_codes",
            "useSystemOptionsMessageResponseStatusCodes", bool,
        ),
        E(
            "delete_options_message_response_status_code",
            "deleteOptionsMessageResponseStatusCode", str, is_array=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    new_name: str = Field(type=str, required=False, mutable=False)
    pilot_user_id: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=False, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=False, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=False, mutable=False)
    require_authentication: bool = Field(type=bool, required=False, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    allow_termination_to_trunk_group_identity: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_termination_to_dtg_identity: bool = Field(type=bool, required=False, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=False, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=False, mutable=False)
    include_trunk_group_identity_for_network_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    include_otg_identity_for_network_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_network_address_identity: bool = Field(type=bool, required=False, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=False, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=False, mutable=False)
    pilot_user_calling_line_identity_for_external_calls_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=False, mutable=False)
    prefix_enabled: bool = Field(type=bool, required=False, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)
    stateful_rerouting_enabled: bool = Field(type=bool, required=False, mutable=False)
    send_continuous_options_message: bool = Field(type=bool, required=False, mutable=False)
    continuous_options_sending_interval_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    failure_options_sending_interval_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    failure_threshold_counter: int = Field(type=int, required=False, mutable=False)
    success_threshold_counter: int = Field(type=int, required=False, mutable=False)
    invite_failure_threshold_counter: int = Field(type=int, required=False, mutable=False)
    invite_failure_threshold_window_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    pilot_user_calling_line_asserted_identity_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_system_calling_line_asserted_identity_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    pilot_user_call_optimization_policy: str = Field(type=str, required=False, mutable=False)
    clid_source_for_screened_calls_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_system_clid_source_for_screened_calls_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    user_lookup_policy: str = Field(type=str, required=False, mutable=False)
    use_system_user_lookup_policy: bool = Field(type=bool, required=False, mutable=False)
    pilot_user_calling_line_identity_for_emergency_calls_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    implicit_registration_set_support_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_system_implicit_registration_set_support_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    sip_identity_for_pilot_and_proxy_trunk_modes_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_system_support_connected_identity_policy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    support_connected_identity_policy: str = Field(type=str, required=False, mutable=False)
    use_system_options_message_response_status_codes: bool = Field(
        type=bool, required=False, mutable=False,
    )
    delete_options_message_response_status_code: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupTrunkGroupModifyRequest(OCIRequest):
    """
    Modify the maximum and bursting maximum permissible active Trunk Group calls for the
    group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        max_active_calls: maxActiveCalls
        bursting_max_active_calls: burstingMaxActiveCalls
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("max_active_calls", "maxActiveCalls", OCI.UnboundedNonNegativeInt, is_complex=True),
        E(
            "bursting_max_active_calls", "burstingMaxActiveCalls",
            OCI.UnboundedNonNegativeInt, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    max_active_calls: "OCI.UnboundedNonNegativeInt" = Field(
        type=OCI.UnboundedNonNegativeInt, required=False, mutable=False,
    )
    bursting_max_active_calls: "OCI.UnboundedNonNegativeInt" = Field(
        type=OCI.UnboundedNonNegativeInt, required=False, mutable=False,
    )


class GroupTrunkGroupModifyRequest14sp9(OCIRequest):
    """
    Modify the maximum and bursting maximum permissible active Trunk Group calls for the
    group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        max_active_calls: maxActiveCalls
        bursting_max_active_calls: burstingMaxActiveCalls
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("max_active_calls", "maxActiveCalls", int),
        E(
            "bursting_max_active_calls", "burstingMaxActiveCalls",
            OCI.UnboundedNonNegativeInt, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_active_calls: "OCI.UnboundedNonNegativeInt" = Field(
        type=OCI.UnboundedNonNegativeInt, required=False, mutable=False,
    )


class GroupTrunkGroupOptionsMessageResponseStatusCodeAddListRequest(OCIRequest):
    """
    Add a list of trunk group level successful SIP OPTIONS message respoonse status codes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
        status_code: statusCode
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("status_code", "statusCode", str, is_required=True),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    status_code: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupSecurityClassificationGetRequest(OCIRequest):
    """
    Get a trunk group's Security Classifications configuration.

    The response is either ``GroupTrunkGroupSecurityClassificationGetResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupSecurityClassificationModifyRequest(OCIRequest):
    """
    Modify a trunk group's Security Classification configuration The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        trunk_group_key: trunkGroupKey
        default_security_classification: defaultSecurityClassification
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E(
            "default_security_classification", "defaultSecurityClassification", str,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    default_security_classification: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupUserCreationTaskAddRequest14sp4(OCIRequest):
    """
    Add a user creation task for a trunk group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
        task_name: taskName
        user_id_format: userIdFormat
        user_id_domain: userIdDomain
        populate_extension: populateExtension
        line_port_format: linePortFormat
        line_port_domain: linePortDomain
        populate_contact: populateContact
        contact_format: contactFormat
        contact_domain: contactDomain
        user_phone_numbers: userPhoneNumbers
        user_extensions: userExtensions
        service_pack_name: servicePackName
        user_service: userService
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("task_name", "taskName", str, is_required=True),
        E("user_id_format", "userIdFormat", str, is_required=True),
        E("user_id_domain", "userIdDomain", str, is_required=True),
        E("populate_extension", "populateExtension", bool, is_required=True),
        E("line_port_format", "linePortFormat", str, is_required=True),
        E("line_port_domain", "linePortDomain", str, is_required=True),
        E("populate_contact", "populateContact", bool, is_required=True),
        E("contact_format", "contactFormat", str),
        E("contact_domain", "contactDomain", str),
        E("user_phone_numbers", "userPhoneNumbers", str, is_complex=True),  # unknown
        E("user_extensions", "userExtensions", str, is_complex=True),  # unknown
        E("service_pack_name", "servicePackName", str, is_array=True),
        E("user_service", "userService", str, is_array=True),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    task_name: str = Field(type=str, required=True, mutable=False)
    user_id_format: str = Field(type=str, required=True, mutable=False)
    user_id_domain: str = Field(type=str, required=True, mutable=False)
    populate_extension: bool = Field(type=bool, required=True, mutable=False)
    line_port_format: str = Field(type=str, required=True, mutable=False)
    line_port_domain: str = Field(type=str, required=True, mutable=False)
    populate_contact: bool = Field(type=bool, required=True, mutable=False)
    contact_format: str = Field(type=str, required=False, mutable=False)
    contact_domain: str = Field(type=str, required=False, mutable=False)
    user_phone_numbers: str = Field(type=str, required=False, mutable=False)
    user_extensions: str = Field(type=str, required=False, mutable=False)
    service_pack_name: "List[str]" = Field(type=list, required=False, mutable=False)
    user_service: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupTrunkGroupUserCreationTaskDeleteRequest14sp4(OCIRequest):
    """
    Delete a user creation task for a trunk group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
        task_name: taskName
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("task_name", "taskName", str, is_required=True),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    task_name: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupUserCreationTaskGetListRequest14sp4(OCIRequest):
    """
    Get the list of user creation tasks for a trunk group.

    The response is either ``GroupTrunkGroupUserCreationTaskGetListResponse14sp4()`` or
    ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class GroupTrunkGroupUserCreationTaskGetRequest14sp4(OCIRequest):
    """
    Request the details of a specified user creation task for a trunk group.

    The response is either ``GroupTrunkGroupUserCreationTaskGetResponse14sp4()`` or
    ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
        task_name: taskName
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("task_name", "taskName", str, is_required=True),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    task_name: str = Field(type=str, required=True, mutable=False)


class GroupVirtualOnNetEnterpriseExtensionsGetUserListRequest(OCIRequest):
    """
    Request the list of Virtual On-Net users in a 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 a
    ``GroupVirtualOnNetEnterpriseExtensionsGetUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_virtual_on_net_call_type_name:
            searchCriteriaExactVirtualOnNetCallTypeName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_virtual_on_net_call_type_name",
            "searchCriteriaExactVirtualOnNetCallTypeName",
            OCI.SearchCriteriaExactVirtualOnNetCallTypeName, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_virtual_on_net_call_type_name: "OCI.SearchCriteriaExactVirtualOnNetCallTypeName" = Field(
        type=OCI.SearchCriteriaExactVirtualOnNetCallTypeName, required=False,
        mutable=False,
    )


class GroupVoiceMessagingGroupModifyVoicePortalBrandingRequest(OCIRequest):
    """
    Modify the group's voice portal branding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupVoiceMessagingGroupModifyVoicePortalBrandingRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        voice_portal_greeting_selection: voicePortalGreetingSelection
        voice_portal_greeting_file: voicePortalGreetingFile
        voice_messaging_greeting_selection: voiceMessagingGreetingSelection
        voice_messaging_greeting_file: voiceMessagingGreetingFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("voice_portal_greeting_selection", "voicePortalGreetingSelection", str),
        E(
            "voice_portal_greeting_file", "voicePortalGreetingFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E("voice_messaging_greeting_selection", "voiceMessagingGreetingSelection", str),
        E(
            "voice_messaging_greeting_file", "voiceMessagingGreetingFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    voice_portal_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_portal_greeting_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    voice_messaging_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_messaging_greeting_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class GroupVoiceMessagingGroupModifyVoicePortalBrandingRequest16(OCIRequest):
    """
    Modify the group's voice portal branding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        voice_portal_greeting_selection: voicePortalGreetingSelection
        voice_portal_greeting_file: voicePortalGreetingFile
        voice_messaging_greeting_selection: voiceMessagingGreetingSelection
        voice_messaging_greeting_file: voiceMessagingGreetingFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("voice_portal_greeting_selection", "voicePortalGreetingSelection", str),
        E(
            "voice_portal_greeting_file", "voicePortalGreetingFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E("voice_messaging_greeting_selection", "voiceMessagingGreetingSelection", str),
        E(
            "voice_messaging_greeting_file", "voiceMessagingGreetingFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    voice_portal_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_portal_greeting_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    voice_messaging_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_messaging_greeting_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )


class GroupVoiceMessagingGroupModifyVoicePortalBrandingRequest20(OCIRequest):
    """
    Modify the group's voice portal branding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        voice_portal_greeting_selection: voicePortalGreetingSelection
        voice_portal_greeting_file: voicePortalGreetingFile
        voice_messaging_greeting_selection: voiceMessagingGreetingSelection
        voice_messaging_greeting_file: voiceMessagingGreetingFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("voice_portal_greeting_selection", "voicePortalGreetingSelection", str),
        E(
            "voice_portal_greeting_file", "voicePortalGreetingFile",
            OCI.AnnouncementFileKey, is_complex=True,
        ),
        E("voice_messaging_greeting_selection", "voiceMessagingGreetingSelection", str),
        E(
            "voice_messaging_greeting_file", "voiceMessagingGreetingFile",
            OCI.AnnouncementFileKey, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    voice_portal_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_portal_greeting_file: "OCI.AnnouncementFileKey" = Field(
        type=OCI.AnnouncementFileKey, required=False, mutable=False,
    )
    voice_messaging_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_messaging_greeting_file: "OCI.AnnouncementFileKey" = Field(
        type=OCI.AnnouncementFileKey, required=False, mutable=False,
    )


class GroupVoiceXmlModifyActiveInstanceListRequest(OCIRequest):
    """
    Request to set the active status of VoiceXML instances.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_activation: serviceActivation
    """

    _ELEMENTS = (
        E(
            "service_activation", "serviceActivation", OCI.ServiceActivation,
            is_complex=True, is_array=True,
        ),
    )

    service_activation: "List[OCI.ServiceActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderAccessDeviceAddRequest14(OCIRequest):
    """
    Request to add a service provider access device.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        device_type: deviceType
        protocol: protocol
        net_address: netAddress
        port: port
        outbound_proxy_server_net_address: outboundProxyServerNetAddress
        stun_server_net_address: stunServerNetAddress
        mac_address: macAddress
        serial_number: serialNumber
        description: description
        physical_location: physicalLocation
        transport_protocol: transportProtocol
        mobility_manager_provisioning_url: mobilityManagerProvisioningURL
        mobility_manager_provisioning_user_name: mobilityManagerProvisioningUserName
        mobility_manager_provisioning_password: mobilityManagerProvisioningPassword
        mobility_manager_default_originating_service_key:
            mobilityManagerDefaultOriginatingServiceKey
        mobility_manager_default_terminating_service_key:
            mobilityManagerDefaultTerminatingServiceKey
        use_custom_user_name_password: useCustomUserNamePassword
        access_device_credentials: accessDeviceCredentials
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("protocol", "protocol", str),
        E("net_address", "netAddress", str),
        E("port", "port", int),
        E("outbound_proxy_server_net_address", "outboundProxyServerNetAddress", str),
        E("stun_server_net_address", "stunServerNetAddress", str),
        E("mac_address", "macAddress", str),
        E("serial_number", "serialNumber", str),
        E("description", "description", str),
        E("physical_location", "physicalLocation", str),
        E("transport_protocol", "transportProtocol", str),
        E("mobility_manager_provisioning_url", "mobilityManagerProvisioningURL", str),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName", str,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword", str,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey", int,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey", int,
        ),
        E("use_custom_user_name_password", "useCustomUserNamePassword", bool),
        E(
            "access_device_credentials", "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    protocol: str = Field(type=str, required=False, mutable=False)
    net_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    outbound_proxy_server_net_address: str = Field(type=str, required=False, mutable=False)
    stun_server_net_address: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    serial_number: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    physical_location: str = Field(type=str, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_url: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_user_name: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_provisioning_password: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_default_originating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    mobility_manager_default_terminating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    use_custom_user_name_password: bool = Field(type=bool, required=False, mutable=False)
    access_device_credentials: "OCI.DeviceManagementUserNamePassword16" = Field(
        type=OCI.DeviceManagementUserNamePassword16, required=False, mutable=False,
    )


class ServiceProviderAccessDeviceFileModifyRequest(OCIRequest):
    """
    Request to modify a specified service provider/enterprise access device file.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``ServiceProviderAccessDeviceFileModifyRequest14sp8()``

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        file_type: fileType
        file_source: fileSource
        upload_file: uploadFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )


class ServiceProviderAccessDeviceFileModifyRequest14sp8(OCIRequest):
    """
    Request to modify a specified service provider/enterprise access device file.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: extendedCaptureEnabled

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        file_format: fileFormat
        file_source: fileSource
        upload_file: uploadFile
        extended_capture_enabled: extendedCaptureEnabled
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E("extended_capture_enabled", "extendedCaptureEnabled", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    extended_capture_enabled: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderAccessDeviceGetListRequest(OCIRequest):
    """
    Requests the list of access devices in a service provider.

    The response is either ``ServiceProviderAccessDeviceGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_device_mac_address: searchCriteriaDeviceMACAddress
        search_criteria_device_net_address: searchCriteriaDeviceNetAddress
        search_criteria_exact_device_type: searchCriteriaExactDeviceType
        search_criteria_access_device_version: searchCriteriaAccessDeviceVersion
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_mac_address", "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_net_address", "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_device_type", "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType, is_complex=True,
        ),
        E(
            "search_criteria_access_device_version", "searchCriteriaAccessDeviceVersion",
            OCI.SearchCriteriaAccessDeviceVersion, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_mac_address: "List[OCI.SearchCriteriaDeviceMACAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_net_address: "List[OCI.SearchCriteriaDeviceNetAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_device_type: "OCI.SearchCriteriaExactDeviceType" = Field(
        type=OCI.SearchCriteriaExactDeviceType, required=False, mutable=False,
    )
    search_criteria_access_device_version: "List[OCI.SearchCriteriaAccessDeviceVersion]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderAccessDeviceModifyRequest14(OCIRequest):
    """
    Request to modify a specified service provider access device.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        protocol: protocol
        net_address: netAddress
        port: port
        outbound_proxy_server_net_address: outboundProxyServerNetAddress
        stun_server_net_address: stunServerNetAddress
        mac_address: macAddress
        serial_number: serialNumber
        description: description
        physical_location: physicalLocation
        transport_protocol: transportProtocol
        mobility_manager_provisioning_url: mobilityManagerProvisioningURL
        mobility_manager_provisioning_user_name: mobilityManagerProvisioningUserName
        mobility_manager_provisioning_password: mobilityManagerProvisioningPassword
        mobility_manager_default_originating_service_key:
            mobilityManagerDefaultOriginatingServiceKey
        mobility_manager_default_terminating_service_key:
            mobilityManagerDefaultTerminatingServiceKey
        use_custom_user_name_password: useCustomUserNamePassword
        access_device_credentials: accessDeviceCredentials
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("protocol", "protocol", str),
        E("net_address", "netAddress", str),
        E("port", "port", int),
        E("outbound_proxy_server_net_address", "outboundProxyServerNetAddress", str),
        E("stun_server_net_address", "stunServerNetAddress", str),
        E("mac_address", "macAddress", str),
        E("serial_number", "serialNumber", str),
        E("description", "description", str),
        E("physical_location", "physicalLocation", str),
        E("transport_protocol", "transportProtocol", str),
        E("mobility_manager_provisioning_url", "mobilityManagerProvisioningURL", str),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName", str,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword", str,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey", int,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey", int,
        ),
        E("use_custom_user_name_password", "useCustomUserNamePassword", bool),
        E(
            "access_device_credentials", "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    protocol: str = Field(type=str, required=False, mutable=False)
    net_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    outbound_proxy_server_net_address: str = Field(type=str, required=False, mutable=False)
    stun_server_net_address: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    serial_number: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    physical_location: str = Field(type=str, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_url: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_user_name: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_provisioning_password: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_default_originating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    mobility_manager_default_terminating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    use_custom_user_name_password: bool = Field(type=bool, required=False, mutable=False)
    access_device_credentials: "OCI.DeviceManagementUserNamePassword16" = Field(
        type=OCI.DeviceManagementUserNamePassword16, required=False, mutable=False,
    )


class ServiceProviderAddRequest13mp2(OCIRequest):
    """
    Add a service provider or enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        is_enterprise: isEnterprise
        use_custom_routing_profile: useCustomRoutingProfile
        service_provider_id: serviceProviderId
        default_domain: defaultDomain
        service_provider_name: serviceProviderName
        support_email: supportEmail
        contact: contact
        address: address
    """

    _ELEMENTS = (
        E("is_enterprise", "isEnterprise", bool),
        E("use_custom_routing_profile", "useCustomRoutingProfile", bool),
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("default_domain", "defaultDomain", str, is_required=True),
        E("service_provider_name", "serviceProviderName", str),
        E("support_email", "supportEmail", str),
        E("contact", "contact", OCI.Contact, is_complex=True),
        E("address", "address", OCI.StreetAddress, is_complex=True),
    )

    is_enterprise: bool = Field(type=bool, required=False, mutable=False)
    use_custom_routing_profile: bool = Field(type=bool, required=False, mutable=False)
    service_provider_id: str = Field(type=str, required=True, mutable=False)
    default_domain: str = Field(type=str, required=True, mutable=False)
    service_provider_name: str = Field(type=str, required=False, mutable=False)
    support_email: str = Field(type=str, required=False, mutable=False)
    contact: "OCI.Contact" = Field(type=OCI.Contact, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )


class ServiceProviderAnswerConfirmationModifyRequest(OCIRequest):
    """
    Modify a service provider or enterprise's answer confirmation settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``ServiceProviderAnswerConfirmationModifyRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        announcement_message_selection: announcementMessageSelection
        confirmation_message_audio_file: confirmationMessageAudioFile
        confirmation_timout_seconds: confirmationTimoutSeconds
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("announcement_message_selection", "announcementMessageSelection", str),
        E(
            "confirmation_message_audio_file", "confirmationMessageAudioFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E("confirmation_timout_seconds", "confirmationTimoutSeconds", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    announcement_message_selection: str = Field(type=str, required=False, mutable=False)
    confirmation_message_audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    confirmation_timout_seconds: int = Field(type=int, required=False, mutable=False)


class ServiceProviderAnswerConfirmationModifyRequest16(OCIRequest):
    """
    Modify a service provider or enterprise's answer confirmation settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        announcement_message_selection: announcementMessageSelection
        confirmation_message_audio_file: confirmationMessageAudioFile
        confirmation_timout_seconds: confirmationTimoutSeconds
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("announcement_message_selection", "announcementMessageSelection", str),
        E(
            "confirmation_message_audio_file", "confirmationMessageAudioFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E("confirmation_timout_seconds", "confirmationTimoutSeconds", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    announcement_message_selection: str = Field(type=str, required=False, mutable=False)
    confirmation_message_audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    confirmation_timout_seconds: int = Field(type=int, required=False, mutable=False)


class ServiceProviderBroadWorksMobilityMobileSubscriberDirectoryNumberGetSummaryListRequest(OCIRequest):
    """
    Request a summary table of all Mobile Subscriber Directory Numbers in a service
    provider.

    This command is applicable only for service providers and will fail for enterprises.

    The response is either
    ``ServiceProviderBroadWorksMobilityMobileSubscriberDirectoryNumberGetSummaryListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_mobile_subscriber_directory_number:
            searchCriteriaMobileSubscriberDirectoryNumber
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_mobile_network: searchCriteriaExactMobileNetwork
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_mobile_subscriber_directory_number",
            "searchCriteriaMobileSubscriberDirectoryNumber",
            OCI.SearchCriteriaMobileSubscriberDirectoryNumber, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_mobile_network", "searchCriteriaExactMobileNetwork",
            OCI.SearchCriteriaExactMobileNetwork, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mobile_subscriber_directory_number: "List[OCI.SearchCriteriaMobileSubscriberDirectoryNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_mobile_network: "OCI.SearchCriteriaExactMobileNetwork" = Field(
        type=OCI.SearchCriteriaExactMobileNetwork, required=False, mutable=False,
    )


class ServiceProviderCommunicationBarringDigitPatternCriteriaGetPatternListRequest(OCIRequest):
    """
    Get an existing Digit Pattern Criteria.

    The response is either a
    ``ServiceProviderCommunicationBarringDigitPatternCriteriaGetPatternListResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        response_size_limit: responseSizeLimit
        search_criteria_digit_pattern: searchCriteriaDigitPattern
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_digit_pattern", "searchCriteriaDigitPattern",
            OCI.SearchCriteriaDigitPattern, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_digit_pattern: "List[OCI.SearchCriteriaDigitPattern]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderCommunicationBarringProfileAddRequest(OCIRequest):
    """
    Add a new Communication Barring Profile.

    The priorities for OriginatingRules, RedirectingRules and IncomingRules are
    requantized to consecutive integers as part of the add.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        description: description
        originating_default_action: originatingDefaultAction
        originating_default_treatment_id: originatingDefaultTreatmentId
        originating_default_transfer_number: originatingDefaultTransferNumber
        originating_default_call_timeout: originatingDefaultCallTimeout
        originating_rule: originatingRule
        redirecting_default_action: redirectingDefaultAction
        redirecting_default_call_timeout: redirectingDefaultCallTimeout
        redirecting_rule: redirectingRule
        incoming_default_action: incomingDefaultAction
        incoming_default_call_timeout: incomingDefaultCallTimeout
        incoming_rule: incomingRule
        become_default: becomeDefault
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("originating_default_action", "originatingDefaultAction", str, is_required=True),
        E("originating_default_treatment_id", "originatingDefaultTreatmentId", str),
        E("originating_default_transfer_number", "originatingDefaultTransferNumber", str),
        E("originating_default_call_timeout", "originatingDefaultCallTimeout", int),
        E(
            "originating_rule", "originatingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule,
            is_complex=True, is_array=True,
        ),
        E("redirecting_default_action", "redirectingDefaultAction", str, is_required=True),
        E("redirecting_default_call_timeout", "redirectingDefaultCallTimeout", int),
        E(
            "redirecting_rule", "redirectingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule,
            is_complex=True, is_array=True,
        ),
        E("incoming_default_action", "incomingDefaultAction", str, is_required=True),
        E("incoming_default_call_timeout", "incomingDefaultCallTimeout", int),
        E(
            "incoming_rule", "incomingRule", OCI.CommunicationBarringIncomingRule,
            is_complex=True, is_array=True,
        ),
        E("become_default", "becomeDefault", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    originating_default_action: str = Field(type=str, required=True, mutable=False)
    originating_default_treatment_id: str = Field(type=str, required=False, mutable=False)
    originating_default_transfer_number: str = Field(type=str, required=False, mutable=False)
    originating_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    originating_rule: "List[OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    redirecting_default_action: str = Field(type=str, required=True, mutable=False)
    redirecting_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    redirecting_rule: "List[OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    incoming_default_action: str = Field(type=str, required=True, mutable=False)
    incoming_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    incoming_rule: "List[OCI.CommunicationBarringIncomingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    become_default: bool = Field(type=bool, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileAddRequest17sp3(OCIRequest):
    """
    Add a new Communication Barring Profile.

    The priorities for OriginatingRules, RedirectingRules, CallMeNowRules and
    IncomingRules are requantized to consecutive integers as part of the add.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: callMeNowDefaultAction, use value
    "Block" in HSS data mode callMeNowDefaultCallTimeout callMeNowRule

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        description: description
        originating_default_action: originatingDefaultAction
        originating_default_treatment_id: originatingDefaultTreatmentId
        originating_default_transfer_number: originatingDefaultTransferNumber
        originating_default_call_timeout: originatingDefaultCallTimeout
        originating_rule: originatingRule
        redirecting_default_action: redirectingDefaultAction
        redirecting_default_call_timeout: redirectingDefaultCallTimeout
        redirecting_rule: redirectingRule
        call_me_now_default_action: callMeNowDefaultAction
        call_me_now_default_call_timeout: callMeNowDefaultCallTimeout
        call_me_now_rule: callMeNowRule
        incoming_default_action: incomingDefaultAction
        incoming_default_call_timeout: incomingDefaultCallTimeout
        incoming_rule: incomingRule
        become_default: becomeDefault
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("originating_default_action", "originatingDefaultAction", str, is_required=True),
        E("originating_default_treatment_id", "originatingDefaultTreatmentId", str),
        E("originating_default_transfer_number", "originatingDefaultTransferNumber", str),
        E("originating_default_call_timeout", "originatingDefaultCallTimeout", int),
        E(
            "originating_rule", "originatingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule,
            is_complex=True, is_array=True,
        ),
        E("redirecting_default_action", "redirectingDefaultAction", str, is_required=True),
        E("redirecting_default_call_timeout", "redirectingDefaultCallTimeout", int),
        E(
            "redirecting_rule", "redirectingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule,
            is_complex=True, is_array=True,
        ),
        E("call_me_now_default_action", "callMeNowDefaultAction", str, is_required=True),
        E("call_me_now_default_call_timeout", "callMeNowDefaultCallTimeout", int),
        E(
            "call_me_now_rule", "callMeNowRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule,
            is_complex=True, is_array=True,
        ),
        E("incoming_default_action", "incomingDefaultAction", str, is_required=True),
        E("incoming_default_call_timeout", "incomingDefaultCallTimeout", int),
        E(
            "incoming_rule", "incomingRule", OCI.CommunicationBarringIncomingRule,
            is_complex=True, is_array=True,
        ),
        E("become_default", "becomeDefault", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    originating_default_action: str = Field(type=str, required=True, mutable=False)
    originating_default_treatment_id: str = Field(type=str, required=False, mutable=False)
    originating_default_transfer_number: str = Field(type=str, required=False, mutable=False)
    originating_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    originating_rule: "List[OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    redirecting_default_action: str = Field(type=str, required=True, mutable=False)
    redirecting_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    redirecting_rule: "List[OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    call_me_now_default_action: str = Field(type=str, required=True, mutable=False)
    call_me_now_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    call_me_now_rule: "List[OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule]" = Field(
        type=list, required=False, mutable=False,
    )
    incoming_default_action: str = Field(type=str, required=True, mutable=False)
    incoming_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    incoming_rule: "List[OCI.CommunicationBarringIncomingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    become_default: bool = Field(type=bool, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileAddRequest19sp1(OCIRequest):
    """
    Add a new Communication Barring Profile.

    The priorities for OriginatingRules, RedirectingRules, CallMeNowRules and
    IncomingRules are requantized to consecutive integers as part of the add.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: callMeNowDefaultAction, use value
    "Block" in HSS data mode callMeNowDefaultCallTimeout callMeNowRule
    applyToAttendedCallTransfers, use value "false" in HSS data mode

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        description: description
        originating_default_action: originatingDefaultAction
        originating_default_treatment_id: originatingDefaultTreatmentId
        originating_default_transfer_number: originatingDefaultTransferNumber
        originating_default_call_timeout: originatingDefaultCallTimeout
        originating_rule: originatingRule
        redirecting_default_action: redirectingDefaultAction
        redirecting_default_call_timeout: redirectingDefaultCallTimeout
        redirecting_rule: redirectingRule
        call_me_now_default_action: callMeNowDefaultAction
        call_me_now_default_call_timeout: callMeNowDefaultCallTimeout
        call_me_now_rule: callMeNowRule
        incoming_default_action: incomingDefaultAction
        incoming_default_call_timeout: incomingDefaultCallTimeout
        incoming_rule: incomingRule
        become_default: becomeDefault
        apply_to_attended_call_transfers: applyToAttendedCallTransfers
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("originating_default_action", "originatingDefaultAction", str, is_required=True),
        E("originating_default_treatment_id", "originatingDefaultTreatmentId", str),
        E("originating_default_transfer_number", "originatingDefaultTransferNumber", str),
        E("originating_default_call_timeout", "originatingDefaultCallTimeout", int),
        E(
            "originating_rule", "originatingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule,
            is_complex=True, is_array=True,
        ),
        E("redirecting_default_action", "redirectingDefaultAction", str, is_required=True),
        E("redirecting_default_call_timeout", "redirectingDefaultCallTimeout", int),
        E(
            "redirecting_rule", "redirectingRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule,
            is_complex=True, is_array=True,
        ),
        E("call_me_now_default_action", "callMeNowDefaultAction", str, is_required=True),
        E("call_me_now_default_call_timeout", "callMeNowDefaultCallTimeout", int),
        E(
            "call_me_now_rule", "callMeNowRule",
            OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule,
            is_complex=True, is_array=True,
        ),
        E("incoming_default_action", "incomingDefaultAction", str, is_required=True),
        E("incoming_default_call_timeout", "incomingDefaultCallTimeout", int),
        E(
            "incoming_rule", "incomingRule", OCI.CommunicationBarringIncomingRule19sp1,
            is_complex=True, is_array=True,
        ),
        E("become_default", "becomeDefault", bool, is_required=True),
        E(
            "apply_to_attended_call_transfers", "applyToAttendedCallTransfers", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    originating_default_action: str = Field(type=str, required=True, mutable=False)
    originating_default_treatment_id: str = Field(type=str, required=False, mutable=False)
    originating_default_transfer_number: str = Field(type=str, required=False, mutable=False)
    originating_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    originating_rule: "List[OCI.ServiceProviderCommunicationBarringHierarchicalOriginatingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    redirecting_default_action: str = Field(type=str, required=True, mutable=False)
    redirecting_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    redirecting_rule: "List[OCI.ServiceProviderCommunicationBarringHierarchicalRedirectingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    call_me_now_default_action: str = Field(type=str, required=True, mutable=False)
    call_me_now_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    call_me_now_rule: "List[OCI.ServiceProviderCommunicationBarringHierarchicalCallMeNowRule]" = Field(
        type=list, required=False, mutable=False,
    )
    incoming_default_action: str = Field(type=str, required=True, mutable=False)
    incoming_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    incoming_rule: "List[OCI.CommunicationBarringIncomingRule19sp1]" = Field(
        type=list, required=False, mutable=False,
    )
    become_default: bool = Field(type=bool, required=True, mutable=False)
    apply_to_attended_call_transfers: bool = Field(type=bool, required=True, mutable=False)


class ServiceProviderCommunicationBarringProfileGetAssignedGroupListRequest(OCIRequest):
    """
    Get a list of groups within a service provider that have a given Communication Barring
    Profile assigned.

    The response is either a
    ``ServiceProviderCommunicationBarringProfileGetAssignedGroupListResponse()`` or an
    ``ErorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        profile: profile
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_group_name: searchCriteriaGroupName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("profile", "profile", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_name", "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    profile: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_name: "List[OCI.SearchCriteriaGroupName]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderDeviceManagementEventGetListRequest(OCIRequest):
    """
    Request device management's events for a specific queue.

    It is possible to restrict the number of rows returned using responseSizeLimit.  If
    eventQueueType is not specified, the events from all the event queues are returned.

    The response is either a ``ServiceProviderDeviceManagementEventGetListResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        event_queue_type: eventQueueType
        response_size_limit: responseSizeLimit
        search_criteria_exact_device_management_event_status_in_progress_or_pending:
            searchCriteriaExactDeviceManagementEventStatusInProgressOrPending
        search_criteria_exact_device_management_event_status_completed:
            searchCriteriaExactDeviceManagementEventStatusCompleted
        search_criteria_exact_device_management_event_action:
            searchCriteriaExactDeviceManagementEventAction
        search_criteria_exact_device_management_event_level:
            searchCriteriaExactDeviceManagementEventLevel
        search_criteria_exact_device_management_event_type:
            searchCriteriaExactDeviceManagementEventType
        search_criteria_device_management_event_additional_info:
            searchCriteriaDeviceManagementEventAdditionalInfo
        search_criteria_device_management_event_login_id:
            searchCriteriaDeviceManagementEventLoginId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("event_queue_type", "eventQueueType", str),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_exact_device_management_event_status_in_progress_or_pending",
            "searchCriteriaExactDeviceManagementEventStatusInProgressOrPending",
            OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_status_completed",
            "searchCriteriaExactDeviceManagementEventStatusCompleted",
            OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_action",
            "searchCriteriaExactDeviceManagementEventAction",
            OCI.SearchCriteriaExactDeviceManagementEventAction, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_level",
            "searchCriteriaExactDeviceManagementEventLevel",
            OCI.SearchCriteriaExactDeviceManagementEventLevel, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_type",
            "searchCriteriaExactDeviceManagementEventType",
            OCI.SearchCriteriaExactDeviceManagementEventType, is_complex=True,
        ),
        E(
            "search_criteria_device_management_event_additional_info",
            "searchCriteriaDeviceManagementEventAdditionalInfo",
            OCI.SearchCriteriaDeviceManagementEventAdditionalInfo, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_device_management_event_login_id",
            "searchCriteriaDeviceManagementEventLoginId",
            OCI.SearchCriteriaDeviceManagementEventLoginId, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    event_queue_type: str = Field(type=str, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_exact_device_management_event_status_in_progress_or_pending: "OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
        required=False, mutable=False,
    )
    search_criteria_exact_device_management_event_status_completed: "OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted, required=False,
        mutable=False,
    )
    search_criteria_exact_device_management_event_action: "OCI.SearchCriteriaExactDeviceManagementEventAction" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventAction, required=False,
        mutable=False,
    )
    search_criteria_exact_device_management_event_level: "OCI.SearchCriteriaExactDeviceManagementEventLevel" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventLevel, required=False,
        mutable=False,
    )
    search_criteria_exact_device_management_event_type: "OCI.SearchCriteriaExactDeviceManagementEventType" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventType, required=False,
        mutable=False,
    )
    search_criteria_device_management_event_additional_info: "List[OCI.SearchCriteriaDeviceManagementEventAdditionalInfo]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_management_event_login_id: "List[OCI.SearchCriteriaDeviceManagementEventLoginId]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderDialableCallerIDCriteriaModifyRequest(OCIRequest):
    """
    Modify a Dialable Caller ID Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        new_name: newName
        description: description
        prefix_digits: prefixDigits
        match_call_type: matchCallType
        match_alternate_call_indicator: matchAlternateCallIndicator
        match_local_category: matchLocalCategory
        match_national_category: matchNationalCategory
        match_interlata_category: matchInterlataCategory
        match_intralata_category: matchIntralataCategory
        match_international_category: matchInternationalCategory
        match_private_category: matchPrivateCategory
        match_emergency_category: matchEmergencyCategory
        match_other_category: matchOtherCategory
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("prefix_digits", "prefixDigits", str),
        E(
            "match_call_type", "matchCallType",
            OCI.ReplacementCommunicationBarringCallTypeList, is_complex=True,
        ),
        E(
            "match_alternate_call_indicator", "matchAlternateCallIndicator",
            OCI.ReplacementCommunicationBarringAlternateCallIndicatorList, is_complex=True,
        ),
        E("match_local_category", "matchLocalCategory", bool),
        E("match_national_category", "matchNationalCategory", bool),
        E("match_interlata_category", "matchInterlataCategory", bool),
        E("match_intralata_category", "matchIntralataCategory", bool),
        E("match_international_category", "matchInternationalCategory", bool),
        E("match_private_category", "matchPrivateCategory", bool),
        E("match_emergency_category", "matchEmergencyCategory", bool),
        E("match_other_category", "matchOtherCategory", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    prefix_digits: str = Field(type=str, required=False, mutable=False)
    match_call_type: "OCI.ReplacementCommunicationBarringCallTypeList" = Field(
        type=OCI.ReplacementCommunicationBarringCallTypeList, required=False,
        mutable=False,
    )
    match_alternate_call_indicator: "OCI.ReplacementCommunicationBarringAlternateCallIndicatorList" = Field(
        type=OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
        required=False, mutable=False,
    )
    match_local_category: bool = Field(type=bool, required=False, mutable=False)
    match_national_category: bool = Field(type=bool, required=False, mutable=False)
    match_interlata_category: bool = Field(type=bool, required=False, mutable=False)
    match_intralata_category: bool = Field(type=bool, required=False, mutable=False)
    match_international_category: bool = Field(type=bool, required=False, mutable=False)
    match_private_category: bool = Field(type=bool, required=False, mutable=False)
    match_emergency_category: bool = Field(type=bool, required=False, mutable=False)
    match_other_category: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderDialableCallerIDModifyRequest(OCIRequest):
    """
    Modify the service provider?s Dialable Caller ID settings and criteria list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        use_service_provider_criteria: useServiceProviderCriteria
        ns_screening_failure_policy: nsScreeningFailurePolicy
        criteria_priority_order: criteriaPriorityOrder
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("use_service_provider_criteria", "useServiceProviderCriteria", bool),
        E("ns_screening_failure_policy", "nsScreeningFailurePolicy", str),
        E(
            "criteria_priority_order", "criteriaPriorityOrder",
            OCI.DialableCallerIDCriteriaPriorityOrder, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    use_service_provider_criteria: bool = Field(type=bool, required=False, mutable=False)
    ns_screening_failure_policy: str = Field(type=str, required=False, mutable=False)
    criteria_priority_order: "List[OCI.DialableCallerIDCriteriaPriorityOrder]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderDnAddListRequest(OCIRequest):
    """
    Adds DNs to a service provider.

    It is possible to add 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()``.

    Attributes:
        service_provider_id: serviceProviderId
        phone_number: phoneNumber
        dn_range: dnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_array=True),
        E("dn_range", "dnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class ServiceProviderDnDeleteListRequest(OCIRequest):
    """
    Deletes DNs from a service provider.

    It is possible to delete 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()``.

    Attributes:
        service_provider_id: serviceProviderId
        phone_number: phoneNumber
        dn_range: dnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_array=True),
        E("dn_range", "dnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class ServiceProviderDomainGetAssignedGroupListRequest(OCIRequest):
    """
    Requests a list of groups within a service provider that have a given domain assigned.

    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 ``ServiceProviderDomainGetAssignedGroupListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        domain: domain
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_group_name: searchCriteriaGroupName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("domain", "domain", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_name", "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    domain: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_name: "List[OCI.SearchCriteriaGroupName]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderFeatureAccessCodeModifyListRequest(OCIRequest):
    """
    Modify a list of feature access codes for a service provider or enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeEntry,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    feature_access_code: "List[OCI.FeatureAccessCodeEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderFeatureAccessCodeModifyListRequest20(OCIRequest):
    """
    Modify a list of feature access codes for a service provider or enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. In release
    20 the "Call Recording" FAC name is changed to "Call Recording - Start". Replaced by:
    ``ServiceProviderFeatureAccessCodeModifyListRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeEntry,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    feature_access_code: "List[OCI.FeatureAccessCodeEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderFeatureAccessCodeModifyListRequest21(OCIRequest):
    """
    Modify a list of feature access codes for a service provider or enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. In release
    20 the "Call Recording" FAC name is changed to "Call Recording - Start".

    Attributes:
        service_provider_id: serviceProviderId
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeModifyEntry,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    feature_access_code: "List[OCI.FeatureAccessCodeModifyEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderGetListRequest(OCIRequest):
    """
    Request a list of service providers and/or enterprises 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 ``ServiceProviderGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        is_enterprise: isEnterprise
        response_size_limit: responseSizeLimit
        search_criteria_service_provider_id: searchCriteriaServiceProviderId
        search_criteria_service_provider_name: searchCriteriaServiceProviderName
    """

    _ELEMENTS = (
        E("is_enterprise", "isEnterprise", bool),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_service_provider_id", "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_service_provider_name", "searchCriteriaServiceProviderName",
            OCI.SearchCriteriaServiceProviderName, is_complex=True, is_array=True,
        ),
    )

    is_enterprise: bool = Field(type=bool, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_service_provider_id: "List[OCI.SearchCriteriaServiceProviderId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_service_provider_name: "List[OCI.SearchCriteriaServiceProviderName]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderIMRNAssignListRequest(OCIRequest):
    """
    Assign a list of service provider DNs to the IMRN pool.

    It is possible to assign 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()``.

    Attributes:
        service_provider_id: serviceProviderId
        imrn: imrn
        imrn_range: imrnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("imrn", "imrn", str, is_array=True),
        E("imrn_range", "imrnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    imrn: "List[str]" = Field(type=list, required=False, mutable=False)
    imrn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class ServiceProviderIMRNUnassignListRequest(OCIRequest):
    """
    Unassign a list of service provider DNs from the service provider IMRN pool.

    The DNs then become available for assignment to groups.  It is possible to delete
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        imrn: imrn
        imrn_range: imrnRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("imrn", "imrn", str, is_array=True),
        E("imrn_range", "imrnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    imrn: "List[str]" = Field(type=list, required=False, mutable=False)
    imrn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class ServiceProviderMWIDeliveryToMobileEndpointModifyRequest(OCIRequest):
    """
    Modify the service provider level MWI custom notifications settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        template_activation: templateActivation
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "template_activation", "templateActivation",
            OCI.MWIDeliveryToMobileEndpointTemplateActivation, is_complex=True,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    template_activation: "List[OCI.MWIDeliveryToMobileEndpointTemplateActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderMeetMeConferencingModifyRequest(OCIRequest):
    """
    Modify the service provider/enterprise level data associated with Meet-Me Conferencing
    functions.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        allocated_ports: allocatedPorts
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "allocated_ports", "allocatedPorts", OCI.MeetMeConferencingConferencePorts,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    allocated_ports: "OCI.MeetMeConferencingConferencePorts" = Field(
        type=OCI.MeetMeConferencingConferencePorts, required=False, mutable=False,
    )


class ServiceProviderModifyRequest(OCIRequest):
    """
    Modify the profile for a service provider or enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        default_domain: defaultDomain
        service_provider_name: serviceProviderName
        support_email: supportEmail
        contact: contact
        address: address
        use_service_provider_languages: useServiceProviderLanguages
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("default_domain", "defaultDomain", str),
        E("service_provider_name", "serviceProviderName", str),
        E("support_email", "supportEmail", str),
        E("contact", "contact", OCI.Contact, is_complex=True),
        E("address", "address", OCI.StreetAddress, is_complex=True),
        E("use_service_provider_languages", "useServiceProviderLanguages", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    default_domain: str = Field(type=str, required=False, mutable=False)
    service_provider_name: str = Field(type=str, required=False, mutable=False)
    support_email: str = Field(type=str, required=False, mutable=False)
    contact: "OCI.Contact" = Field(type=OCI.Contact, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )
    use_service_provider_languages: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderNetworkClassOfServiceAssignListRequest21(OCIRequest):
    """
    Assign a list of Network Classes of Service to a service provider.

    A default Network Class of Service must be specified unless there is already one
    assigned to the service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        network_class_of_service: networkClassOfService
        default_network_class_of_service: defaultNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_array=True),
        E(
            "default_network_class_of_service", "defaultNetworkClassOfService",
            OCI.DefaultNetworkClassOfService, is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: "List[str]" = Field(type=list, required=False, mutable=False)
    default_network_class_of_service: "OCI.DefaultNetworkClassOfService" = Field(
        type=OCI.DefaultNetworkClassOfService, required=True, mutable=False,
    )


class ServiceProviderNetworkClassOfServiceGetAssignedGroupListRequest(OCIRequest):
    """
    Get a list of groups within a service provider that have a given Network Class of
    Service assigned.

    The response is either a
    ``ServiceProviderNetworkClassOfServiceGetAssignedGroupListResponse()`` or an
    ``ErorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        network_class_of_service: networkClassOfService
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_group_name: searchCriteriaGroupName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_name", "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_name: "List[OCI.SearchCriteriaGroupName]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderNetworkClassOfServiceUnassignListRequest21(OCIRequest):
    """
    Unassign a list of Network Classes of Service from a service provider.

    If the default Network Class of Service is being unassigned, a new one must be
    specified unless there are no more Network Classes of Service assigned to the service
    provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        network_class_of_service: networkClassOfService
        default_network_class_of_service: defaultNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_array=True),
        E(
            "default_network_class_of_service", "defaultNetworkClassOfService",
            OCI.DefaultNetworkClassOfService, is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: "List[str]" = Field(type=list, required=False, mutable=False)
    default_network_class_of_service: "OCI.DefaultNetworkClassOfService" = Field(
        type=OCI.DefaultNetworkClassOfService, required=True, mutable=False,
    )


class ServiceProviderNumberPortabilityQueryGetRequest(OCIRequest):
    """
    Request to get the Service Provider Number Portability Query Digit Pattern Trigger
    List information.

    The response is either a ``ServiceProviderNumberPortabilityQueryGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        include_digit_patterns: includeDigitPatterns
        search_criteria_service_provider_number_portability_query_digit_pattern:
            searchCriteriaServiceProviderNumberPortabilityQueryDigitPattern
        response_size_limit: responseSizeLimit
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("include_digit_patterns", "includeDigitPatterns", bool, is_required=True),
        E(
            "search_criteria_service_provider_number_portability_query_digit_pattern",
            "searchCriteriaServiceProviderNumberPortabilityQueryDigitPattern",
            OCI.SearchCriteriaServiceProviderNumberPortabilityQueryDigitPattern,
            is_complex=True, is_array=True,
        ),
        E("response_size_limit", "responseSizeLimit", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    include_digit_patterns: bool = Field(type=bool, required=True, mutable=False)
    search_criteria_service_provider_number_portability_query_digit_pattern: "List[OCI.SearchCriteriaServiceProviderNumberPortabilityQueryDigitPattern]" = Field(
        type=list, required=False, mutable=False,
    )
    response_size_limit: int = Field(type=int, required=False, mutable=False)


class ServiceProviderOfficeZoneGetAssignedGroupListRequest(OCIRequest):
    """
    Get a list of groups within a service provider that have a given Office Zone assigned.

    The response is either a ``ServiceProviderOfficeZoneGetAssignedGroupListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        office_zone_name: officeZoneName
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_group_name: searchCriteriaGroupName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("office_zone_name", "officeZoneName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_name", "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    office_zone_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_name: "List[OCI.SearchCriteriaGroupName]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderRouteListEnterpriseTrunkNumberRangeAddListRequest(OCIRequest):
    """
    Add number ranges to a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        number_range: numberRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("number_range", "numberRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    number_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class ServiceProviderRoutePointExternalSystemGetAssignedGroupListRequest(OCIRequest):
    """
    Requests a list of groups within a service provider that have a given external system
    assigned.

    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
    ``ServiceProviderRoutePointExternalSystemGetAssignedGroupListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        external_system: externalSystem
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_group_name: searchCriteriaGroupName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("external_system", "externalSystem", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_name", "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    external_system: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_name: "List[OCI.SearchCriteriaGroupName]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderScheduleAddEventRequest(OCIRequest):
    """
    Add an event to service provider schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after the startDate.  The endDate element is set to the sum of the
    adjusted starDate element value and the event duration.

    Attributes:
        service_provider_id: serviceProviderId
        schedule_key: scheduleKey
        event_name: eventName
        start_date: startDate
        all_day_event: allDayEvent
        start_time: startTime
        end_time: endTime
        end_date: endDate
        recurrence: recurrence
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
        E("start_date", "startDate", str, is_required=True),
        E("all_day_event", "allDayEvent", bool),
        E("start_time", "startTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_time", "endTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_date", "endDate", str, is_required=True),
        E("recurrence", "recurrence", OCI.Recurrence, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)
    start_date: str = Field(type=str, required=True, mutable=False)
    all_day_event: bool = Field(type=bool, required=False, mutable=False)
    start_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_date: str = Field(type=str, required=True, mutable=False)
    recurrence: "OCI.Recurrence" = Field(type=OCI.Recurrence, required=False, mutable=False)


class ServiceProviderScheduleDeleteEventListRequest(OCIRequest):
    """
    Delete a list of events from a service provider schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        schedule_key: scheduleKey
        event_name: eventName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderScheduleDeleteListRequest(OCIRequest):
    """
    Delete a list of service provider schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        schedule_key: scheduleKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )


class ServiceProviderScheduleGetEventListRequest(OCIRequest):
    """
    Get the list of events of a service provider schedule.

    The response is either a ``ServiceProviderScheduleGetEventListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        schedule_key: scheduleKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )


class ServiceProviderScheduleGetEventRequest(OCIRequest):
    """
    Get an event from a service provider schedule.

    The response is either a ``ServiceProviderScheduleGetEventResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        schedule_key: scheduleKey
        event_name: eventName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)


class ServiceProviderScheduleModifyEventRequest(OCIRequest):
    """
    Modify an event of a service provider schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after the startDate.  The endDate element is set to the sum of the
    adjusted starDate element value and the event duration.

    Attributes:
        service_provider_id: serviceProviderId
        schedule_key: scheduleKey
        event_name: eventName
        new_event_name: newEventName
        start_date: startDate
        all_day_event: allDayEvent
        start_time: startTime
        end_time: endTime
        end_date: endDate
        recurrence: recurrence
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
        E("new_event_name", "newEventName", str),
        E("start_date", "startDate", str),
        E("all_day_event", "allDayEvent", bool),
        E("start_time", "startTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_time", "endTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_date", "endDate", str),
        E("recurrence", "recurrence", OCI.Recurrence, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)
    new_event_name: str = Field(type=str, required=False, mutable=False)
    start_date: str = Field(type=str, required=False, mutable=False)
    all_day_event: bool = Field(type=bool, required=False, mutable=False)
    start_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_date: str = Field(type=str, required=False, mutable=False)
    recurrence: "OCI.Recurrence" = Field(type=OCI.Recurrence, required=False, mutable=False)


class ServiceProviderScheduleModifyRequest(OCIRequest):
    """
    Modify a service provider schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        schedule_key: scheduleKey
        new_schedule_name: newScheduleName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("new_schedule_name", "newScheduleName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    new_schedule_name: str = Field(type=str, required=False, mutable=False)


class ServiceProviderServicePackAddRequest(OCIRequest):
    """
    Request to add a service pack to a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        service_pack_name: servicePackName
        service_pack_description: servicePackDescription
        is_available_for_use: isAvailableForUse
        service_pack_quantity: servicePackQuantity
        service_name: serviceName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("service_pack_name", "servicePackName", str, is_required=True),
        E("service_pack_description", "servicePackDescription", str),
        E("is_available_for_use", "isAvailableForUse", bool, is_required=True),
        E(
            "service_pack_quantity", "servicePackQuantity", OCI.UnboundedPositiveInt,
            is_complex=True, is_required=True,
        ),
        E("service_name", "serviceName", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    service_pack_name: str = Field(type=str, required=True, mutable=False)
    service_pack_description: str = Field(type=str, required=False, mutable=False)
    is_available_for_use: bool = Field(type=bool, required=True, mutable=False)
    service_pack_quantity: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    service_name: "List[str]" = Field(type=list, required=False, mutable=False)


class ServiceProviderServicePackMigrationTaskGetAvailableGroupListRequest(OCIRequest):
    """
    Requests a list of groups to migrate.

    The response is either
    ``ServiceProviderServicePackMigrationTaskGetAvailabeGroupListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_group_name: searchCriteriaGroupName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_name", "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_name: "List[OCI.SearchCriteriaGroupName]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderServicePackMigrationTaskModifyAssignmentListRequest(OCIRequest):
    """
    Replace the list of services and packs to be assigned to users during the service pack
    migration.

    Modification is only allowed prior to task execution.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
        user_service_name_list: userServiceNameList
        service_pack_name_list: servicePackNameList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
        E(
            "user_service_name_list", "userServiceNameList",
            OCI.ReplacementUserServiceList, is_complex=True,
        ),
        E(
            "service_pack_name_list", "servicePackNameList",
            OCI.ReplacementServicePackNameList, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)
    user_service_name_list: "OCI.ReplacementUserServiceList" = Field(
        type=OCI.ReplacementUserServiceList, required=False, mutable=False,
    )
    service_pack_name_list: "OCI.ReplacementServicePackNameList" = Field(
        type=OCI.ReplacementServicePackNameList, required=False, mutable=False,
    )


class ServiceProviderServicePackMigrationTaskModifyRemovalListRequest(OCIRequest):
    """
    Replace the list of services and packs to be removed from users during the service
    pack migration.

    Modification is only allowed prior to task execution.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
        user_service_name_list: userServiceNameList
        service_pack_name_list: servicePackNameList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
        E(
            "user_service_name_list", "userServiceNameList",
            OCI.ReplacementUserServiceList, is_complex=True,
        ),
        E(
            "service_pack_name_list", "servicePackNameList",
            OCI.ReplacementServicePackNameList, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)
    user_service_name_list: "OCI.ReplacementUserServiceList" = Field(
        type=OCI.ReplacementUserServiceList, required=False, mutable=False,
    )
    service_pack_name_list: "OCI.ReplacementServicePackNameList" = Field(
        type=OCI.ReplacementServicePackNameList, required=False, mutable=False,
    )


class ServiceProviderServicePackMigrationTaskModifyUserSelectionRequest(OCIRequest):
    """
    Replace the list of services and packs used to select which users will be migrated.

    Modification is only allowed prior to task execution.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        task_name: taskName
        user_selection_type: userSelectionType
        user_service_name_list: userServiceNameList
        service_pack_name_list: servicePackNameList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("task_name", "taskName", str, is_required=True),
        E("user_selection_type", "userSelectionType", str),
        E(
            "user_service_name_list", "userServiceNameList",
            OCI.ReplacementUserServiceList, is_complex=True,
        ),
        E(
            "service_pack_name_list", "servicePackNameList",
            OCI.ReplacementServicePackNameList, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    task_name: str = Field(type=str, required=True, mutable=False)
    user_selection_type: str = Field(type=str, required=False, mutable=False)
    user_service_name_list: "OCI.ReplacementUserServiceList" = Field(
        type=OCI.ReplacementUserServiceList, required=False, mutable=False,
    )
    service_pack_name_list: "OCI.ReplacementServicePackNameList" = Field(
        type=OCI.ReplacementServicePackNameList, required=False, mutable=False,
    )


class ServiceProviderServicePackModifyRequest(OCIRequest):
    """
    Requests to modify a service pack for a service provider.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        service_pack_name: servicePackName
        new_service_pack_name: newServicePackName
        service_pack_description: servicePackDescription
        is_available_for_use: isAvailableForUse
        service_pack_quantity: servicePackQuantity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("service_pack_name", "servicePackName", str, is_required=True),
        E("new_service_pack_name", "newServicePackName", str),
        E("service_pack_description", "servicePackDescription", str),
        E("is_available_for_use", "isAvailableForUse", bool),
        E(
            "service_pack_quantity", "servicePackQuantity", OCI.UnboundedPositiveInt,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    service_pack_name: str = Field(type=str, required=True, mutable=False)
    new_service_pack_name: str = Field(type=str, required=False, mutable=False)
    service_pack_description: str = Field(type=str, required=False, mutable=False)
    is_available_for_use: bool = Field(type=bool, required=False, mutable=False)
    service_pack_quantity: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=False, mutable=False,
    )


class ServiceProviderTrunkGroupModifyRequest(OCIRequest):
    """
    Modify the maximum and bursting maximum permissible active Trunk Group calls for the
    service provider.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        max_active_calls: maxActiveCalls
        bursting_max_active_calls: burstingMaxActiveCalls
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("max_active_calls", "maxActiveCalls", OCI.UnboundedNonNegativeInt, is_complex=True),
        E(
            "bursting_max_active_calls", "burstingMaxActiveCalls",
            OCI.UnboundedNonNegativeInt, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    max_active_calls: "OCI.UnboundedNonNegativeInt" = Field(
        type=OCI.UnboundedNonNegativeInt, required=False, mutable=False,
    )
    bursting_max_active_calls: "OCI.UnboundedNonNegativeInt" = Field(
        type=OCI.UnboundedNonNegativeInt, required=False, mutable=False,
    )


class ServiceProviderVoiceMessagingGroupModifyVoicePortalBrandingRequest(OCIRequest):
    """
    Modify the service provider's voice portal branding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By:
    ``ServiceProviderVoiceMessagingGroupModifyVoicePortalBrandingRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        voice_portal_greeting_selection: voicePortalGreetingSelection
        voice_portal_greeting_file: voicePortalGreetingFile
        voice_messaging_greeting_selection: voiceMessagingGreetingSelection
        voice_messaging_greeting_file: voiceMessagingGreetingFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("voice_portal_greeting_selection", "voicePortalGreetingSelection", str),
        E(
            "voice_portal_greeting_file", "voicePortalGreetingFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E("voice_messaging_greeting_selection", "voiceMessagingGreetingSelection", str),
        E(
            "voice_messaging_greeting_file", "voiceMessagingGreetingFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    voice_portal_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_portal_greeting_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    voice_messaging_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_messaging_greeting_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class ServiceProviderVoiceMessagingGroupModifyVoicePortalBrandingRequest16(OCIRequest):
    """
    Modify the service provider's voice portal branding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        voice_portal_greeting_selection: voicePortalGreetingSelection
        voice_portal_greeting_file: voicePortalGreetingFile
        voice_messaging_greeting_selection: voiceMessagingGreetingSelection
        voice_messaging_greeting_file: voiceMessagingGreetingFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("voice_portal_greeting_selection", "voicePortalGreetingSelection", str),
        E(
            "voice_portal_greeting_file", "voicePortalGreetingFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E("voice_messaging_greeting_selection", "voiceMessagingGreetingSelection", str),
        E(
            "voice_messaging_greeting_file", "voiceMessagingGreetingFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    voice_portal_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_portal_greeting_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    voice_messaging_greeting_selection: str = Field(type=str, required=False, mutable=False)
    voice_messaging_greeting_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )


class SystemAccessDeviceAddRequest(OCIRequest):
    """
    Request to add a system-level access device.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        device_type: deviceType
        protocol: protocol
        net_address: netAddress
        port: port
        outbound_proxy_server_net_address: outboundProxyServerNetAddress
        stun_server_net_address: stunServerNetAddress
        mac_address: macAddress
        serial_number: serialNumber
        description: description
        physical_location: physicalLocation
        transport_protocol: transportProtocol
        mobility_manager_provisioning_url: mobilityManagerProvisioningURL
        mobility_manager_provisioning_user_name: mobilityManagerProvisioningUserName
        mobility_manager_provisioning_password: mobilityManagerProvisioningPassword
        mobility_manager_default_originating_service_key:
            mobilityManagerDefaultOriginatingServiceKey
        mobility_manager_default_terminating_service_key:
            mobilityManagerDefaultTerminatingServiceKey
        use_custom_user_name_password: useCustomUserNamePassword
        access_device_credentials: accessDeviceCredentials
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("device_type", "deviceType", str, is_required=True),
        E("protocol", "protocol", str),
        E("net_address", "netAddress", str),
        E("port", "port", int),
        E("outbound_proxy_server_net_address", "outboundProxyServerNetAddress", str),
        E("stun_server_net_address", "stunServerNetAddress", str),
        E("mac_address", "macAddress", str),
        E("serial_number", "serialNumber", str),
        E("description", "description", str),
        E("physical_location", "physicalLocation", str),
        E("transport_protocol", "transportProtocol", str),
        E("mobility_manager_provisioning_url", "mobilityManagerProvisioningURL", str),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName", str,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword", str,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey", int,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey", int,
        ),
        E("use_custom_user_name_password", "useCustomUserNamePassword", bool),
        E(
            "access_device_credentials", "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16, is_complex=True,
        ),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    device_type: str = Field(type=str, required=True, mutable=False)
    protocol: str = Field(type=str, required=False, mutable=False)
    net_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    outbound_proxy_server_net_address: str = Field(type=str, required=False, mutable=False)
    stun_server_net_address: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    serial_number: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    physical_location: str = Field(type=str, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_url: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_user_name: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_provisioning_password: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_default_originating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    mobility_manager_default_terminating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    use_custom_user_name_password: bool = Field(type=bool, required=False, mutable=False)
    access_device_credentials: "OCI.DeviceManagementUserNamePassword16" = Field(
        type=OCI.DeviceManagementUserNamePassword16, required=False, mutable=False,
    )


class SystemAccessDeviceFileModifyRequest(OCIRequest):
    """
    Request to modify a specified system access device file.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``SystemAccessDeviceFileModifyRequest14sp8()``

    Attributes:
        device_name: deviceName
        file_type: fileType
        file_source: fileSource
        upload_file: uploadFile
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )


class SystemAccessDeviceFileModifyRequest14sp8(OCIRequest):
    """
    Request to modify a specified system access device file.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: extendedCaptureEnabled

    Attributes:
        device_name: deviceName
        file_format: fileFormat
        file_source: fileSource
        upload_file: uploadFile
        extended_capture_enabled: extendedCaptureEnabled
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E("extended_capture_enabled", "extendedCaptureEnabled", bool),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    extended_capture_enabled: bool = Field(type=bool, required=False, mutable=False)


class SystemAccessDeviceGetAllRequest(OCIRequest):
    """
    Requests the list of all access devices in the entire system.

    Prior to release 14, this functionality was provided with the
    ``SystemAccessDeviceGetListRequest()``.

    The response is either ``SystemAccessDeviceGetAllResponse()`` or ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_device_mac_address: searchCriteriaDeviceMACAddress
        search_criteria_device_net_address: searchCriteriaDeviceNetAddress
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_device_type: searchCriteriaExactDeviceType
        search_criteria_exact_device_service_provider:
            searchCriteriaExactDeviceServiceProvider
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_mac_address", "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_net_address", "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_device_type", "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_service_provider",
            "searchCriteriaExactDeviceServiceProvider",
            OCI.SearchCriteriaExactDeviceServiceProvider, is_complex=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_mac_address: "List[OCI.SearchCriteriaDeviceMACAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_net_address: "List[OCI.SearchCriteriaDeviceNetAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_device_type: "OCI.SearchCriteriaExactDeviceType" = Field(
        type=OCI.SearchCriteriaExactDeviceType, required=False, mutable=False,
    )
    search_criteria_exact_device_service_provider: "OCI.SearchCriteriaExactDeviceServiceProvider" = Field(
        type=OCI.SearchCriteriaExactDeviceServiceProvider, required=False, mutable=False,
    )


class SystemAccessDeviceGetListRequest14(OCIRequest):
    """
    Requests the list of access devices defined at the System-level.

    Prior to release 14, this command requested a list of all devices in the entire
    system.  That functionality is now moved to the ``SystemAccessDeviceGetAllRequest()``.

    The response is either ``SystemAccessDeviceGetListResponse14()`` or
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_device_mac_address: searchCriteriaDeviceMACAddress
        search_criteria_device_net_address: searchCriteriaDeviceNetAddress
        search_criteria_exact_device_type: searchCriteriaExactDeviceType
        search_criteria_access_device_version: searchCriteriaAccessDeviceVersion
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_mac_address", "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_net_address", "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_device_type", "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType, is_complex=True,
        ),
        E(
            "search_criteria_access_device_version", "searchCriteriaAccessDeviceVersion",
            OCI.SearchCriteriaAccessDeviceVersion, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_mac_address: "List[OCI.SearchCriteriaDeviceMACAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_net_address: "List[OCI.SearchCriteriaDeviceNetAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_device_type: "OCI.SearchCriteriaExactDeviceType" = Field(
        type=OCI.SearchCriteriaExactDeviceType, required=False, mutable=False,
    )
    search_criteria_access_device_version: "List[OCI.SearchCriteriaAccessDeviceVersion]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemAccessDeviceGetUserListRequest(OCIRequest):
    """
    Requests the users associated with a specified system access device.

    The response is either ``SystemAccessDeviceGetUserListResponse()`` or
    ``ErrorResponse()``. The following elements are only used in HSS data mode and ignored
    in AS data mode: searchCriteriaAccessDeviceEndpointPrivateIdentity

    Attributes:
        device_name: deviceName
        response_size_limit: responseSizeLimit
        search_criteria_line_port_user_part: searchCriteriaLinePortUserPart
        search_criteria_line_port_domain: searchCriteriaLinePortDomain
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_service_provider: searchCriteriaExactServiceProvider
        search_criteria_exact_endpoint_type: searchCriteriaExactEndpointType
        search_criteria_exact_user_type: searchCriteriaExactUserType
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_port_number: searchCriteriaExactPortNumber
        search_criteria_access_device_endpoint_private_identity:
            searchCriteriaAccessDeviceEndpointPrivateIdentity
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_line_port_user_part", "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_domain", "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider", OCI.SearchCriteriaExactServiceProvider,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_endpoint_type", "searchCriteriaExactEndpointType",
            OCI.SearchCriteriaExactEndpointType, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_type", "searchCriteriaExactUserType",
            OCI.SearchCriteriaExactUserType, is_complex=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_port_number", "searchCriteriaExactPortNumber",
            OCI.SearchCriteriaExactPortNumber, is_complex=True,
        ),
        E(
            "search_criteria_access_device_endpoint_private_identity",
            "searchCriteriaAccessDeviceEndpointPrivateIdentity",
            OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity, is_complex=True,
            is_array=True,
        ),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_line_port_user_part: "List[OCI.SearchCriteriaLinePortUserPart]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_domain: "List[OCI.SearchCriteriaLinePortDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_service_provider: "OCI.SearchCriteriaExactServiceProvider" = Field(
        type=OCI.SearchCriteriaExactServiceProvider, required=False, mutable=False,
    )
    search_criteria_exact_endpoint_type: "OCI.SearchCriteriaExactEndpointType" = Field(
        type=OCI.SearchCriteriaExactEndpointType, required=False, mutable=False,
    )
    search_criteria_exact_user_type: "OCI.SearchCriteriaExactUserType" = Field(
        type=OCI.SearchCriteriaExactUserType, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_port_number: "OCI.SearchCriteriaExactPortNumber" = Field(
        type=OCI.SearchCriteriaExactPortNumber, required=False, mutable=False,
    )
    search_criteria_access_device_endpoint_private_identity: "List[OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemAccessDeviceModifyRequest(OCIRequest):
    """
    Request to modify a specified system access device.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        device_name: deviceName
        protocol: protocol
        net_address: netAddress
        port: port
        outbound_proxy_server_net_address: outboundProxyServerNetAddress
        stun_server_net_address: stunServerNetAddress
        mac_address: macAddress
        serial_number: serialNumber
        description: description
        physical_location: physicalLocation
        transport_protocol: transportProtocol
        mobility_manager_provisioning_url: mobilityManagerProvisioningURL
        mobility_manager_provisioning_user_name: mobilityManagerProvisioningUserName
        mobility_manager_provisioning_password: mobilityManagerProvisioningPassword
        mobility_manager_default_originating_service_key:
            mobilityManagerDefaultOriginatingServiceKey
        mobility_manager_default_terminating_service_key:
            mobilityManagerDefaultTerminatingServiceKey
        use_custom_user_name_password: useCustomUserNamePassword
        access_device_credentials: accessDeviceCredentials
    """

    _ELEMENTS = (
        E("device_name", "deviceName", str, is_required=True),
        E("protocol", "protocol", str),
        E("net_address", "netAddress", str),
        E("port", "port", int),
        E("outbound_proxy_server_net_address", "outboundProxyServerNetAddress", str),
        E("stun_server_net_address", "stunServerNetAddress", str),
        E("mac_address", "macAddress", str),
        E("serial_number", "serialNumber", str),
        E("description", "description", str),
        E("physical_location", "physicalLocation", str),
        E("transport_protocol", "transportProtocol", str),
        E("mobility_manager_provisioning_url", "mobilityManagerProvisioningURL", str),
        E(
            "mobility_manager_provisioning_user_name",
            "mobilityManagerProvisioningUserName", str,
        ),
        E(
            "mobility_manager_provisioning_password",
            "mobilityManagerProvisioningPassword", str,
        ),
        E(
            "mobility_manager_default_originating_service_key",
            "mobilityManagerDefaultOriginatingServiceKey", int,
        ),
        E(
            "mobility_manager_default_terminating_service_key",
            "mobilityManagerDefaultTerminatingServiceKey", int,
        ),
        E("use_custom_user_name_password", "useCustomUserNamePassword", bool),
        E(
            "access_device_credentials", "accessDeviceCredentials",
            OCI.DeviceManagementUserNamePassword16, is_complex=True,
        ),
    )

    device_name: str = Field(type=str, required=True, mutable=False)
    protocol: str = Field(type=str, required=False, mutable=False)
    net_address: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    outbound_proxy_server_net_address: str = Field(type=str, required=False, mutable=False)
    stun_server_net_address: str = Field(type=str, required=False, mutable=False)
    mac_address: str = Field(type=str, required=False, mutable=False)
    serial_number: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    physical_location: str = Field(type=str, required=False, mutable=False)
    transport_protocol: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_url: str = Field(type=str, required=False, mutable=False)
    mobility_manager_provisioning_user_name: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_provisioning_password: str = Field(
        type=str, required=False, mutable=False,
    )
    mobility_manager_default_originating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    mobility_manager_default_terminating_service_key: int = Field(
        type=int, required=False, mutable=False,
    )
    use_custom_user_name_password: bool = Field(type=bool, required=False, mutable=False)
    access_device_credentials: "OCI.DeviceManagementUserNamePassword16" = Field(
        type=OCI.DeviceManagementUserNamePassword16, required=False, mutable=False,
    )


class SystemBroadWorksMobilityAddIMRNListRequest(OCIRequest):
    """
    Adds BroadWorks Mobility IMRN numbers to the system.

    It is possible to add either: a single number, a list of numbers, or a range of
    numbers, or any combination thereof.

    The response is either a ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        imrn_number: imrnNumber
        number_range: numberRange
    """

    _ELEMENTS = (
        E("imrn_number", "imrnNumber", str, is_array=True),
        E("number_range", "numberRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    imrn_number: "List[str]" = Field(type=list, required=False, mutable=False)
    number_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class SystemBroadWorksMobilityAddMobileNetworkIMRNListRequest(OCIRequest):
    """
    Adds BroadWorks Mobility IMRN numbers to a Mobile Network.

    It is possible to add either: a single number, a list of numbers, or a range of
    numbers, or any combination thereof.

    The response is either a ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        mobile_network_name: mobileNetworkName
        imrn_number: imrnNumber
        number_range: numberRange
    """

    _ELEMENTS = (
        E("mobile_network_name", "mobileNetworkName", str, is_required=True),
        E("imrn_number", "imrnNumber", str, is_array=True),
        E("number_range", "numberRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    mobile_network_name: str = Field(type=str, required=True, mutable=False)
    imrn_number: "List[str]" = Field(type=list, required=False, mutable=False)
    number_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class SystemBroadWorksMobilityGetIMRNListRequest(OCIRequest):
    """
    Request to get the list of BroadWorks Mobility IMRN numbers defined in the system.

    The response is either a ``SystemBroadWorksMobilityGetIMRNListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        search_criteria_imrn: searchCriteriaIMRN
    """

    _ELEMENTS = (
        E(
            "search_criteria_imrn", "searchCriteriaIMRN", OCI.SearchCriteriaIMRN,
            is_complex=True, is_array=True,
        ),
    )

    search_criteria_imrn: "List[OCI.SearchCriteriaIMRN]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemBroadWorksMobilityGetMobileNetworkIMRNListRequest(OCIRequest):
    """
    Get a list of BroadWorks Mobility IMRN numbers from a Mobile Network.

    The response is either a
    ``SystemBroadWorksMobilityGetMobileNetworkIMRNListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        mobile_network_name: mobileNetworkName
        search_criteria_imrn: searchCriteriaIMRN
    """

    _ELEMENTS = (
        E("mobile_network_name", "mobileNetworkName", str, is_required=True),
        E(
            "search_criteria_imrn", "searchCriteriaIMRN", OCI.SearchCriteriaIMRN,
            is_complex=True, is_array=True,
        ),
    )

    mobile_network_name: str = Field(type=str, required=True, mutable=False)
    search_criteria_imrn: "List[OCI.SearchCriteriaIMRN]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemBroadWorksMobilityMobileSubscriberDirectoryNumberGetSummaryListRequest(OCIRequest):
    """
    Request a summary table of all Mobile Subscriber Directory Numbers in a system.

    The response is either
    ``SystemBroadWorksMobilityMobileSubscriberDirectoryNumberGetSummaryListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_mobile_subscriber_directory_number:
            searchCriteriaMobileSubscriberDirectoryNumber
        search_criteria_exact_mobile_network: searchCriteriaExactMobileNetwork
        search_criteria_service_provider_id: searchCriteriaServiceProviderId
        search_criteria_exact_organization_type: searchCriteriaExactOrganizationType
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_mobile_subscriber_directory_number",
            "searchCriteriaMobileSubscriberDirectoryNumber",
            OCI.SearchCriteriaMobileSubscriberDirectoryNumber, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_exact_mobile_network", "searchCriteriaExactMobileNetwork",
            OCI.SearchCriteriaExactMobileNetwork, is_complex=True,
        ),
        E(
            "search_criteria_service_provider_id", "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType, is_complex=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mobile_subscriber_directory_number: "List[OCI.SearchCriteriaMobileSubscriberDirectoryNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_mobile_network: "OCI.SearchCriteriaExactMobileNetwork" = Field(
        type=OCI.SearchCriteriaExactMobileNetwork, required=False, mutable=False,
    )
    search_criteria_service_provider_id: "List[OCI.SearchCriteriaServiceProviderId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_organization_type: "OCI.SearchCriteriaExactOrganizationType" = Field(
        type=OCI.SearchCriteriaExactOrganizationType, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCallCenterEnhancedReportingBrandingModifyRequest(OCIRequest):
    """
    Request to modify the system branding configuration.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        branding_choice: brandingChoice
        custom_branding_file: customBrandingFile
    """

    _ELEMENTS = (
        E("branding_choice", "brandingChoice", str),
        E(
            "custom_branding_file", "customBrandingFile", OCI.LabeledFileResource,
            is_complex=True,
        ),
    )

    branding_choice: str = Field(type=str, required=False, mutable=False)
    custom_branding_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class SystemCallCenterEnhancedReportingReportTemplateAddRequest(OCIRequest):
    """
    Request to add a system level call center report template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
        data_template: dataTemplate
        filter_number: filterNumber
        xslt_template: xsltTemplate
        scope: scope
        is_enabled: isEnabled
        is_realtime_report: isRealtimeReport
        call_completion_threshold_param: callCompletionThresholdParam
        short_duration_threshold_param: shortDurationThresholdParam
        service_level_threshold_param: serviceLevelThresholdParam
        service_level_inclusions_param: serviceLevelInclusionsParam
        service_level_objective_threshold_param: serviceLevelObjectiveThresholdParam
        abandoned_call_threshold_param: abandonedCallThresholdParam
        service_level_threshold_param_number: serviceLevelThresholdParamNumber
        abandoned_call_threshold_param_number: abandonedCallThresholdParamNumber
        filter_value: filterValue
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("data_template", "dataTemplate", str, is_required=True),
        E("filter_number", "filterNumber", int),
        E(
            "xslt_template", "xsltTemplate", OCI.LabeledFileResource, is_complex=True,
            is_required=True,
        ),
        E("scope", "scope", str, is_required=True),
        E("is_enabled", "isEnabled", bool, is_required=True),
        E("is_realtime_report", "isRealtimeReport", bool),
        E("call_completion_threshold_param", "callCompletionThresholdParam", str),
        E("short_duration_threshold_param", "shortDurationThresholdParam", str),
        E("service_level_threshold_param", "serviceLevelThresholdParam", str),
        E("service_level_inclusions_param", "serviceLevelInclusionsParam", str),
        E(
            "service_level_objective_threshold_param",
            "serviceLevelObjectiveThresholdParam", str,
        ),
        E("abandoned_call_threshold_param", "abandonedCallThresholdParam", str),
        E("service_level_threshold_param_number", "serviceLevelThresholdParamNumber", int),
        E("abandoned_call_threshold_param_number", "abandonedCallThresholdParamNumber", int),
        E("filter_value", "filterValue", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    data_template: str = Field(type=str, required=True, mutable=False)
    filter_number: int = Field(type=int, required=False, mutable=False)
    xslt_template: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=True, mutable=False,
    )
    scope: str = Field(type=str, required=True, mutable=False)
    is_enabled: bool = Field(type=bool, required=True, mutable=False)
    is_realtime_report: bool = Field(type=bool, required=False, mutable=False)
    call_completion_threshold_param: str = Field(type=str, required=False, mutable=False)
    short_duration_threshold_param: str = Field(type=str, required=False, mutable=False)
    service_level_threshold_param: str = Field(type=str, required=False, mutable=False)
    service_level_inclusions_param: str = Field(type=str, required=False, mutable=False)
    service_level_objective_threshold_param: str = Field(
        type=str, required=False, mutable=False,
    )
    abandoned_call_threshold_param: str = Field(type=str, required=False, mutable=False)
    service_level_threshold_param_number: int = Field(type=int, required=False, mutable=False)
    abandoned_call_threshold_param_number: int = Field(
        type=int, required=False, mutable=False,
    )
    filter_value: str = Field(type=str, required=False, mutable=False)


class SystemCallCenterEnhancedReportingReportTemplateModifyRequest(OCIRequest):
    """
    Request to modify a system level call center report template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        description: description
        xslt_template: xsltTemplate
        scope: scope
        is_enabled: isEnabled
        is_realtime_report: isRealtimeReport
        filter_number: filterNumber
        filter_value: filterValue
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("xslt_template", "xsltTemplate", OCI.LabeledFileResource, is_complex=True),
        E("scope", "scope", str),
        E("is_enabled", "isEnabled", bool),
        E("is_realtime_report", "isRealtimeReport", bool),
        E("filter_number", "filterNumber", int),
        E(
            "filter_value", "filterValue",
            OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
            is_complex=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    xslt_template: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    scope: str = Field(type=str, required=False, mutable=False)
    is_enabled: bool = Field(type=bool, required=False, mutable=False)
    is_realtime_report: bool = Field(type=bool, required=False, mutable=False)
    filter_number: int = Field(type=int, required=False, mutable=False)
    filter_value: "OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList" = Field(
        type=OCI.CallCenterReportDataTemplateQueryFilterValueReplacementList,
        required=False, mutable=False,
    )


class SystemCallCenterEnhancedReportingScheduledReportGetActiveListRequest(OCIRequest):
    """
    Request to get the list of all active call center reporting scheduled reports in the
    system.

    The response is either a
    ``SystemCallCenterEnhancedReportingScheduledReportGetActiveListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_call_center_scheduled_report_name:
            searchCriteriaCallCenterScheduledReportName
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_call_center_scheduled_report_service_provider:
            searchCriteriaExactCallCenterScheduledReportServiceProvider
        search_criteria_exact_call_center_scheduled_report_created_by_supervisor:
            searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
        search_criteria_call_center_report_template_name:
            searchCriteriaCallCenterReportTemplateName
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_service_provider",
            "searchCriteriaExactCallCenterScheduledReportServiceProvider",
            OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            is_complex=True,
        ),
        E(
            "search_criteria_call_center_report_template_name",
            "searchCriteriaCallCenterReportTemplateName",
            OCI.SearchCriteriaCallCenterReportTemplateName, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_scheduled_report_name: "List[OCI.SearchCriteriaCallCenterScheduledReportName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_service_provider: "OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
        required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor: "OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False, mutable=False,
    )
    search_criteria_call_center_report_template_name: "List[OCI.SearchCriteriaCallCenterReportTemplateName]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCallCenterEnhancedReportingScheduledReportGetCompletedListRequest(OCIRequest):
    """
    Request to get the list of all completed call center reporting scheduled reports in
    the system.

    The response is either a
    ``SystemCallCenterEnhancedReportingScheduledReportGetCompletedListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_call_center_scheduled_report_name:
            searchCriteriaCallCenterScheduledReportName
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_call_center_scheduled_report_service_provider:
            searchCriteriaExactCallCenterScheduledReportServiceProvider
        search_criteria_exact_call_center_scheduled_report_created_by_supervisor:
            searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
        search_criteria_call_center_report_template_name:
            searchCriteriaCallCenterReportTemplateName
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_service_provider",
            "searchCriteriaExactCallCenterScheduledReportServiceProvider",
            OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            is_complex=True,
        ),
        E(
            "search_criteria_call_center_report_template_name",
            "searchCriteriaCallCenterReportTemplateName",
            OCI.SearchCriteriaCallCenterReportTemplateName, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_scheduled_report_name: "List[OCI.SearchCriteriaCallCenterScheduledReportName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_service_provider: "OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
        required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor: "OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False, mutable=False,
    )
    search_criteria_call_center_report_template_name: "List[OCI.SearchCriteriaCallCenterReportTemplateName]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCallCenterEnhancedReportingScheduledReportGetListRequest(OCIRequest):
    """
    Request to get the list of all call center reporting scheduled reports in the system.

    The response is either an
    ``SystemCallCenterEnhancedReportingScheduledReportGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_call_center_scheduled_report_name:
            searchCriteriaCallCenterScheduledReportName
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_call_center_scheduled_report_service_provider:
            searchCriteriaExactCallCenterScheduledReportServiceProvider
        search_criteria_exact_call_center_scheduled_report_created_by_supervisor:
            searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
        search_criteria_call_center_report_template_name:
            searchCriteriaCallCenterReportTemplateName
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_service_provider",
            "searchCriteriaExactCallCenterScheduledReportServiceProvider",
            OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            is_complex=True,
        ),
        E(
            "search_criteria_call_center_report_template_name",
            "searchCriteriaCallCenterReportTemplateName",
            OCI.SearchCriteriaCallCenterReportTemplateName, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_scheduled_report_name: "List[OCI.SearchCriteriaCallCenterScheduledReportName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_service_provider: "OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportServiceProvider,
        required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor: "OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False, mutable=False,
    )
    search_criteria_call_center_report_template_name: "List[OCI.SearchCriteriaCallCenterReportTemplateName]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCallProcessingPolicyProfileModifyRequest(OCIRequest):
    """
    Modify a call processing policy profile in system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``SystemCallProcessingPolicyProfileModifyRequest20()``.

    Attributes:
        name: name
        new_name: newName
        description: description
        assigned_subscriber_type_list: assignedSubscriberTypeList
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E(
            "assigned_subscriber_type_list", "assignedSubscriberTypeList",
            OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList, is_complex=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    assigned_subscriber_type_list: "OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList" = Field(
        type=OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList, required=False,
        mutable=False,
    )


class SystemCallProcessingPolicyProfileModifyRequest20(OCIRequest):
    """
    Modify a call processing policy profile in system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        description: description
        assigned_subscriber_type_list: assignedSubscriberTypeList
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E(
            "assigned_subscriber_type_list", "assignedSubscriberTypeList",
            OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList20,
            is_complex=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    assigned_subscriber_type_list: "OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList20" = Field(
        type=OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList20,
        required=False, mutable=False,
    )


class SystemCallProcessingPolicyProfileModifyRequest21(OCIRequest):
    """
    Modify a call processing policy profile in system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        description: description
        assigned_subscriber_type_list: assignedSubscriberTypeList
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E(
            "assigned_subscriber_type_list", "assignedSubscriberTypeList",
            OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList21,
            is_complex=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    assigned_subscriber_type_list: "OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList21" = Field(
        type=OCI.ReplacementCallProcessingPolicyProfileSubscriberTypeList21,
        required=False, mutable=False,
    )


class SystemClassmarkGetUtilizationListRequest(OCIRequest):
    """
    Get the list of all users associated with a Class Mark in system.

    It is possible to search by various criteria.  Multiple search criteria are logically
    ANDed together.

    The response is either a ``SystemClassmarkGetUtilizationListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        classmark: classmark
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_service_provider_id: searchCriteriaExactServiceProviderId
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("classmark", "classmark", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_service_provider_id",
            "searchCriteriaExactServiceProviderId",
            OCI.SearchCriteriaExactServiceProvider, is_complex=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    classmark: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_service_provider_id: "OCI.SearchCriteriaExactServiceProvider" = Field(
        type=OCI.SearchCriteriaExactServiceProvider, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCollaborateModifyRequest(OCIRequest):
    """
    Modify the system level data associated with collaborate services.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        collaborate_room_id_length: collaborateRoomIdLength
        instant_room_idle_timeout_seconds: instantRoomIdleTimeoutSeconds
        collaborate_room_maximum_duration_minutes: collaborateRoomMaximumDurationMinutes
        support_outdial: supportOutdial
        max_collaborate_room_participants: maxCollaborateRoomParticipants
        collaborate_active_talker_refresh_interval_seconds:
            collaborateActiveTalkerRefreshIntervalSeconds
        terminate_collaborate_after_grace_period: terminateCollaborateAfterGracePeriod
        collaborate_grace_period: collaborateGracePeriod
        enable_active_collaborate_notification: enableActiveCollaborateNotification
        collaborate_from_address: collaborateFromAddress
    """

    _ELEMENTS = (
        E("collaborate_room_id_length", "collaborateRoomIdLength", int),
        E("instant_room_idle_timeout_seconds", "instantRoomIdleTimeoutSeconds", int),
        E(
            "collaborate_room_maximum_duration_minutes",
            "collaborateRoomMaximumDurationMinutes", int,
        ),
        E("support_outdial", "supportOutdial", bool),
        E("max_collaborate_room_participants", "maxCollaborateRoomParticipants", int),
        E(
            "collaborate_active_talker_refresh_interval_seconds",
            "collaborateActiveTalkerRefreshIntervalSeconds", int,
        ),
        E(
            "terminate_collaborate_after_grace_period",
            "terminateCollaborateAfterGracePeriod", bool,
        ),
        E(
            "collaborate_grace_period", "collaborateGracePeriod",
            OCI.CollaborateGracePeriodDuration, is_complex=True,
        ),
        E(
            "enable_active_collaborate_notification",
            "enableActiveCollaborateNotification", bool,
        ),
        E("collaborate_from_address", "collaborateFromAddress", str),
    )

    collaborate_room_id_length: int = Field(type=int, required=False, mutable=False)
    instant_room_idle_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    collaborate_room_maximum_duration_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    support_outdial: bool = Field(type=bool, required=False, mutable=False)
    max_collaborate_room_participants: int = Field(type=int, required=False, mutable=False)
    collaborate_active_talker_refresh_interval_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    terminate_collaborate_after_grace_period: bool = Field(
        type=bool, required=False, mutable=False,
    )
    collaborate_grace_period: "OCI.CollaborateGracePeriodDuration" = Field(
        type=OCI.CollaborateGracePeriodDuration, required=False, mutable=False,
    )
    enable_active_collaborate_notification: bool = Field(
        type=bool, required=False, mutable=False,
    )
    collaborate_from_address: str = Field(type=str, required=False, mutable=False)


class SystemCommunicationBarringCriteriaModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        description: description
        match_call_type: matchCallType
        match_alternate_call_indicator: matchAlternateCallIndicator
        match_virtual_on_net_call_type: matchVirtualOnNetCallType
        match_public_network: matchPublicNetwork
        match_private_network: matchPrivateNetwork
        match_local_category: matchLocalCategory
        match_national_category: matchNationalCategory
        match_interlata_category: matchInterlataCategory
        match_intralata_category: matchIntralataCategory
        match_international_category: matchInternationalCategory
        match_private_category: matchPrivateCategory
        match_emergency_category: matchEmergencyCategory
        match_other_category: matchOtherCategory
        match_inter_network: matchInterNetwork
        match_inter_hosting_ne: matchInterHostingNE
        match_inter_as: matchInterAS
        match_intra_as: matchIntraAS
        match_charge_calls: matchChargeCalls
        match_no_charge_calls: matchNoChargeCalls
        match_group_calls: matchGroupCalls
        match_enterprise_calls: matchEnterpriseCalls
        match_network_calls: matchNetworkCalls
        match_network_url_calls: matchNetworkURLCalls
        match_repair_calls: matchRepairCalls
        match_emergency_calls: matchEmergencyCalls
        match_internal_calls: matchInternalCalls
        match_location: matchLocation
        match_roaming: matchRoaming
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        match_number_portability_status: matchNumberPortabilityStatus
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E(
            "match_call_type", "matchCallType",
            OCI.ReplacementCommunicationBarringCallTypeList, is_complex=True,
        ),
        E(
            "match_alternate_call_indicator", "matchAlternateCallIndicator",
            OCI.ReplacementCommunicationBarringAlternateCallIndicatorList, is_complex=True,
        ),
        E(
            "match_virtual_on_net_call_type", "matchVirtualOnNetCallType",
            OCI.ReplacementVirtualOnNetCallTypeNameList, is_complex=True,
        ),
        E("match_public_network", "matchPublicNetwork", bool),
        E("match_private_network", "matchPrivateNetwork", bool),
        E("match_local_category", "matchLocalCategory", bool),
        E("match_national_category", "matchNationalCategory", bool),
        E("match_interlata_category", "matchInterlataCategory", bool),
        E("match_intralata_category", "matchIntralataCategory", bool),
        E("match_international_category", "matchInternationalCategory", bool),
        E("match_private_category", "matchPrivateCategory", bool),
        E("match_emergency_category", "matchEmergencyCategory", bool),
        E("match_other_category", "matchOtherCategory", bool),
        E("match_inter_network", "matchInterNetwork", bool),
        E("match_inter_hosting_ne", "matchInterHostingNE", bool),
        E("match_inter_as", "matchInterAS", bool),
        E("match_intra_as", "matchIntraAS", bool),
        E("match_charge_calls", "matchChargeCalls", bool),
        E("match_no_charge_calls", "matchNoChargeCalls", bool),
        E("match_group_calls", "matchGroupCalls", bool),
        E("match_enterprise_calls", "matchEnterpriseCalls", bool),
        E("match_network_calls", "matchNetworkCalls", bool),
        E("match_network_url_calls", "matchNetworkURLCalls", bool),
        E("match_repair_calls", "matchRepairCalls", bool),
        E("match_emergency_calls", "matchEmergencyCalls", bool),
        E("match_internal_calls", "matchInternalCalls", bool),
        E("match_location", "matchLocation", str),
        E("match_roaming", "matchRoaming", str),
        E("time_schedule", "timeSchedule", str),
        E("holiday_schedule", "holidaySchedule", str),
        E(
            "match_number_portability_status", "matchNumberPortabilityStatus",
            OCI.ReplacementNumberPortabilityStatusList, is_complex=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    match_call_type: "OCI.ReplacementCommunicationBarringCallTypeList" = Field(
        type=OCI.ReplacementCommunicationBarringCallTypeList, required=False,
        mutable=False,
    )
    match_alternate_call_indicator: "OCI.ReplacementCommunicationBarringAlternateCallIndicatorList" = Field(
        type=OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
        required=False, mutable=False,
    )
    match_virtual_on_net_call_type: "OCI.ReplacementVirtualOnNetCallTypeNameList" = Field(
        type=OCI.ReplacementVirtualOnNetCallTypeNameList, required=False, mutable=False,
    )
    match_public_network: bool = Field(type=bool, required=False, mutable=False)
    match_private_network: bool = Field(type=bool, required=False, mutable=False)
    match_local_category: bool = Field(type=bool, required=False, mutable=False)
    match_national_category: bool = Field(type=bool, required=False, mutable=False)
    match_interlata_category: bool = Field(type=bool, required=False, mutable=False)
    match_intralata_category: bool = Field(type=bool, required=False, mutable=False)
    match_international_category: bool = Field(type=bool, required=False, mutable=False)
    match_private_category: bool = Field(type=bool, required=False, mutable=False)
    match_emergency_category: bool = Field(type=bool, required=False, mutable=False)
    match_other_category: bool = Field(type=bool, required=False, mutable=False)
    match_inter_network: bool = Field(type=bool, required=False, mutable=False)
    match_inter_hosting_ne: bool = Field(type=bool, required=False, mutable=False)
    match_inter_as: bool = Field(type=bool, required=False, mutable=False)
    match_intra_as: bool = Field(type=bool, required=False, mutable=False)
    match_charge_calls: bool = Field(type=bool, required=False, mutable=False)
    match_no_charge_calls: bool = Field(type=bool, required=False, mutable=False)
    match_group_calls: bool = Field(type=bool, required=False, mutable=False)
    match_enterprise_calls: bool = Field(type=bool, required=False, mutable=False)
    match_network_calls: bool = Field(type=bool, required=False, mutable=False)
    match_network_url_calls: bool = Field(type=bool, required=False, mutable=False)
    match_repair_calls: bool = Field(type=bool, required=False, mutable=False)
    match_emergency_calls: bool = Field(type=bool, required=False, mutable=False)
    match_internal_calls: bool = Field(type=bool, required=False, mutable=False)
    match_location: str = Field(type=str, required=False, mutable=False)
    match_roaming: str = Field(type=str, required=False, mutable=False)
    time_schedule: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: str = Field(type=str, required=False, mutable=False)
    match_number_portability_status: "OCI.ReplacementNumberPortabilityStatusList" = Field(
        type=OCI.ReplacementNumberPortabilityStatusList, required=False, mutable=False,
    )


class SystemCommunicationBarringDigitPatternCriteriaGetPatternListRequest(OCIRequest):
    """
    Get an existing Digit Pattern Criteria.

    The response is either a
    ``SystemCommunicationBarringDigitPatternCriteriaGetPatternListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        name: name
        response_size_limit: responseSizeLimit
        search_criteria_digit_pattern: searchCriteriaDigitPattern
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_digit_pattern", "searchCriteriaDigitPattern",
            OCI.SearchCriteriaDigitPattern, is_complex=True, is_array=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_digit_pattern: "List[OCI.SearchCriteriaDigitPattern]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCommunicationBarringIncomingCriteriaModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Incoming Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        description: description
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        match_number_portability_status: matchNumberPortabilityStatus
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("time_schedule", "timeSchedule", str),
        E("holiday_schedule", "holidaySchedule", str),
        E(
            "match_number_portability_status", "matchNumberPortabilityStatus",
            OCI.ReplacementNumberPortabilityStatusList, is_complex=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    time_schedule: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: str = Field(type=str, required=False, mutable=False)
    match_number_portability_status: "OCI.ReplacementNumberPortabilityStatusList" = Field(
        type=OCI.ReplacementNumberPortabilityStatusList, required=False, mutable=False,
    )


class SystemCommunicationBarringProfileAddRequest(OCIRequest):
    """
    Add a new Communication Barring Profile.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
        originating_default_action: originatingDefaultAction
        originating_default_treatment_id: originatingDefaultTreatmentId
        originating_default_transfer_number: originatingDefaultTransferNumber
        originating_default_call_timeout: originatingDefaultCallTimeout
        originating_rule: originatingRule
        redirecting_default_action: redirectingDefaultAction
        redirecting_default_call_timeout: redirectingDefaultCallTimeout
        redirecting_rule: redirectingRule
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("originating_default_action", "originatingDefaultAction", str, is_required=True),
        E("originating_default_treatment_id", "originatingDefaultTreatmentId", str),
        E("originating_default_transfer_number", "originatingDefaultTransferNumber", str),
        E("originating_default_call_timeout", "originatingDefaultCallTimeout", int),
        E(
            "originating_rule", "originatingRule",
            OCI.CommunicationBarringOriginatingRule, is_complex=True, is_array=True,
        ),
        E("redirecting_default_action", "redirectingDefaultAction", str, is_required=True),
        E("redirecting_default_call_timeout", "redirectingDefaultCallTimeout", int),
        E(
            "redirecting_rule", "redirectingRule",
            OCI.CommunicationBarringRedirectingRule, is_complex=True, is_array=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    originating_default_action: str = Field(type=str, required=True, mutable=False)
    originating_default_treatment_id: str = Field(type=str, required=False, mutable=False)
    originating_default_transfer_number: str = Field(type=str, required=False, mutable=False)
    originating_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    originating_rule: "List[OCI.CommunicationBarringOriginatingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    redirecting_default_action: str = Field(type=str, required=True, mutable=False)
    redirecting_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    redirecting_rule: "List[OCI.CommunicationBarringRedirectingRule]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCommunicationBarringProfileAddRequest17sp1(OCIRequest):
    """
    Add a new Communication Barring Profile.

    The priorities for IncomingRules are requantized to consecutive integers as part of
    the add.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in HSS data mode: incomingDefaultAction
    incomingDefaultCallTimeout incomingRule

    Attributes:
        name: name
        description: description
        originating_default_action: originatingDefaultAction
        originating_default_treatment_id: originatingDefaultTreatmentId
        originating_default_transfer_number: originatingDefaultTransferNumber
        originating_default_call_timeout: originatingDefaultCallTimeout
        originating_rule: originatingRule
        redirecting_default_action: redirectingDefaultAction
        redirecting_default_call_timeout: redirectingDefaultCallTimeout
        redirecting_rule: redirectingRule
        incoming_default_action: incomingDefaultAction
        incoming_default_call_timeout: incomingDefaultCallTimeout
        incoming_rule: incomingRule
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("originating_default_action", "originatingDefaultAction", str, is_required=True),
        E("originating_default_treatment_id", "originatingDefaultTreatmentId", str),
        E("originating_default_transfer_number", "originatingDefaultTransferNumber", str),
        E("originating_default_call_timeout", "originatingDefaultCallTimeout", int),
        E(
            "originating_rule", "originatingRule",
            OCI.CommunicationBarringOriginatingRule, is_complex=True, is_array=True,
        ),
        E("redirecting_default_action", "redirectingDefaultAction", str, is_required=True),
        E("redirecting_default_call_timeout", "redirectingDefaultCallTimeout", int),
        E(
            "redirecting_rule", "redirectingRule",
            OCI.CommunicationBarringRedirectingRule, is_complex=True, is_array=True,
        ),
        E("incoming_default_action", "incomingDefaultAction", str, is_required=True),
        E("incoming_default_call_timeout", "incomingDefaultCallTimeout", int),
        E(
            "incoming_rule", "incomingRule", OCI.CommunicationBarringIncomingRule,
            is_complex=True, is_array=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    originating_default_action: str = Field(type=str, required=True, mutable=False)
    originating_default_treatment_id: str = Field(type=str, required=False, mutable=False)
    originating_default_transfer_number: str = Field(type=str, required=False, mutable=False)
    originating_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    originating_rule: "List[OCI.CommunicationBarringOriginatingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    redirecting_default_action: str = Field(type=str, required=True, mutable=False)
    redirecting_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    redirecting_rule: "List[OCI.CommunicationBarringRedirectingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    incoming_default_action: str = Field(type=str, required=True, mutable=False)
    incoming_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    incoming_rule: "List[OCI.CommunicationBarringIncomingRule]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCommunicationBarringProfileAddRequest17sp3(OCIRequest):
    """
    Add a new Communication Barring Profile.

    The priorities for IncomingRules are requantized to consecutive integers as part of
    the add.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: callMeNowDefaultAction, use value
    "Block" in HSS data mode callMeNowDefaultCallTimeout callMeNowRule

    Attributes:
        name: name
        description: description
        originating_default_action: originatingDefaultAction
        originating_default_treatment_id: originatingDefaultTreatmentId
        originating_default_transfer_number: originatingDefaultTransferNumber
        originating_default_call_timeout: originatingDefaultCallTimeout
        originating_rule: originatingRule
        redirecting_default_action: redirectingDefaultAction
        redirecting_default_call_timeout: redirectingDefaultCallTimeout
        redirecting_rule: redirectingRule
        incoming_default_action: incomingDefaultAction
        incoming_default_call_timeout: incomingDefaultCallTimeout
        incoming_rule: incomingRule
        call_me_now_default_action: callMeNowDefaultAction
        call_me_now_default_call_timeout: callMeNowDefaultCallTimeout
        call_me_now_rule: callMeNowRule
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("originating_default_action", "originatingDefaultAction", str, is_required=True),
        E("originating_default_treatment_id", "originatingDefaultTreatmentId", str),
        E("originating_default_transfer_number", "originatingDefaultTransferNumber", str),
        E("originating_default_call_timeout", "originatingDefaultCallTimeout", int),
        E(
            "originating_rule", "originatingRule",
            OCI.CommunicationBarringOriginatingRule, is_complex=True, is_array=True,
        ),
        E("redirecting_default_action", "redirectingDefaultAction", str, is_required=True),
        E("redirecting_default_call_timeout", "redirectingDefaultCallTimeout", int),
        E(
            "redirecting_rule", "redirectingRule",
            OCI.CommunicationBarringRedirectingRule, is_complex=True, is_array=True,
        ),
        E("incoming_default_action", "incomingDefaultAction", str, is_required=True),
        E("incoming_default_call_timeout", "incomingDefaultCallTimeout", int),
        E(
            "incoming_rule", "incomingRule", OCI.CommunicationBarringIncomingRule,
            is_complex=True, is_array=True,
        ),
        E("call_me_now_default_action", "callMeNowDefaultAction", str, is_required=True),
        E("call_me_now_default_call_timeout", "callMeNowDefaultCallTimeout", int),
        E(
            "call_me_now_rule", "callMeNowRule", OCI.CommunicationBarringCallMeNowRule,
            is_complex=True, is_array=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    originating_default_action: str = Field(type=str, required=True, mutable=False)
    originating_default_treatment_id: str = Field(type=str, required=False, mutable=False)
    originating_default_transfer_number: str = Field(type=str, required=False, mutable=False)
    originating_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    originating_rule: "List[OCI.CommunicationBarringOriginatingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    redirecting_default_action: str = Field(type=str, required=True, mutable=False)
    redirecting_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    redirecting_rule: "List[OCI.CommunicationBarringRedirectingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    incoming_default_action: str = Field(type=str, required=True, mutable=False)
    incoming_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    incoming_rule: "List[OCI.CommunicationBarringIncomingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    call_me_now_default_action: str = Field(type=str, required=True, mutable=False)
    call_me_now_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    call_me_now_rule: "List[OCI.CommunicationBarringCallMeNowRule]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCommunicationBarringProfileAddRequest19sp1(OCIRequest):
    """
    Add a new Communication Barring Profile.

    The priorities for IncomingRules are requantized to consecutive integers as part of
    the add.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: callMeNowDefaultAction, use value
    "Block" in HSS data mode callMeNowDefaultCallTimeout callMeNowRule
    applyToAttendedCallTransfers, use value "false" in HSS data mode

    Attributes:
        name: name
        description: description
        originating_default_action: originatingDefaultAction
        originating_default_treatment_id: originatingDefaultTreatmentId
        originating_default_transfer_number: originatingDefaultTransferNumber
        originating_default_call_timeout: originatingDefaultCallTimeout
        originating_rule: originatingRule
        redirecting_default_action: redirectingDefaultAction
        redirecting_default_call_timeout: redirectingDefaultCallTimeout
        redirecting_rule: redirectingRule
        incoming_default_action: incomingDefaultAction
        incoming_default_call_timeout: incomingDefaultCallTimeout
        incoming_rule: incomingRule
        call_me_now_default_action: callMeNowDefaultAction
        call_me_now_default_call_timeout: callMeNowDefaultCallTimeout
        call_me_now_rule: callMeNowRule
        apply_to_attended_call_transfers: applyToAttendedCallTransfers
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E("originating_default_action", "originatingDefaultAction", str, is_required=True),
        E("originating_default_treatment_id", "originatingDefaultTreatmentId", str),
        E("originating_default_transfer_number", "originatingDefaultTransferNumber", str),
        E("originating_default_call_timeout", "originatingDefaultCallTimeout", int),
        E(
            "originating_rule", "originatingRule",
            OCI.CommunicationBarringOriginatingRule, is_complex=True, is_array=True,
        ),
        E("redirecting_default_action", "redirectingDefaultAction", str, is_required=True),
        E("redirecting_default_call_timeout", "redirectingDefaultCallTimeout", int),
        E(
            "redirecting_rule", "redirectingRule",
            OCI.CommunicationBarringRedirectingRule, is_complex=True, is_array=True,
        ),
        E("incoming_default_action", "incomingDefaultAction", str, is_required=True),
        E("incoming_default_call_timeout", "incomingDefaultCallTimeout", int),
        E(
            "incoming_rule", "incomingRule", OCI.CommunicationBarringIncomingRule19sp1,
            is_complex=True, is_array=True,
        ),
        E("call_me_now_default_action", "callMeNowDefaultAction", str, is_required=True),
        E("call_me_now_default_call_timeout", "callMeNowDefaultCallTimeout", int),
        E(
            "call_me_now_rule", "callMeNowRule", OCI.CommunicationBarringCallMeNowRule,
            is_complex=True, is_array=True,
        ),
        E(
            "apply_to_attended_call_transfers", "applyToAttendedCallTransfers", bool,
            is_required=True,
        ),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    originating_default_action: str = Field(type=str, required=True, mutable=False)
    originating_default_treatment_id: str = Field(type=str, required=False, mutable=False)
    originating_default_transfer_number: str = Field(type=str, required=False, mutable=False)
    originating_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    originating_rule: "List[OCI.CommunicationBarringOriginatingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    redirecting_default_action: str = Field(type=str, required=True, mutable=False)
    redirecting_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    redirecting_rule: "List[OCI.CommunicationBarringRedirectingRule]" = Field(
        type=list, required=False, mutable=False,
    )
    incoming_default_action: str = Field(type=str, required=True, mutable=False)
    incoming_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    incoming_rule: "List[OCI.CommunicationBarringIncomingRule19sp1]" = Field(
        type=list, required=False, mutable=False,
    )
    call_me_now_default_action: str = Field(type=str, required=True, mutable=False)
    call_me_now_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    call_me_now_rule: "List[OCI.CommunicationBarringCallMeNowRule]" = Field(
        type=list, required=False, mutable=False,
    )
    apply_to_attended_call_transfers: bool = Field(type=bool, required=True, mutable=False)


class SystemDeviceManagementAutoRebuildConfigModifyListRequest(OCIRequest):
    """
    Request to enable or disable automatic trigger of DM events for OCI request prefixes,
    regardless of the request's version.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        auto_rebuild_config_entry: autoRebuildConfigEntry
    """

    _ELEMENTS = (
        E(
            "auto_rebuild_config_entry", "autoRebuildConfigEntry",
            OCI.DeviceManagementAutoRebuildConfigEntry, is_complex=True, is_required=True,
        ),
    )

    auto_rebuild_config_entry: "OCI.DeviceManagementAutoRebuildConfigEntry" = Field(
        type=OCI.DeviceManagementAutoRebuildConfigEntry, required=True, mutable=False,
    )


class SystemDeviceManagementEventGetListRequest(OCIRequest):
    """
    Request device management's events for a specific queue.

    It is possible to restrict the number of rows returned using responseSizeLimit.  If
    eventQueueType is not specified, the events from all the event queues are returned.

    The response is either a ``SystemDeviceManagementEventGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        event_queue_type: eventQueueType
        response_size_limit: responseSizeLimit
        search_criteria_exact_device_management_event_status_in_progress_or_pending:
            searchCriteriaExactDeviceManagementEventStatusInProgressOrPending
        search_criteria_exact_device_management_event_status_completed:
            searchCriteriaExactDeviceManagementEventStatusCompleted
        search_criteria_exact_device_management_event_action:
            searchCriteriaExactDeviceManagementEventAction
        search_criteria_exact_device_management_event_level:
            searchCriteriaExactDeviceManagementEventLevel
        search_criteria_exact_device_management_event_type:
            searchCriteriaExactDeviceManagementEventType
        search_criteria_device_management_event_additional_info:
            searchCriteriaDeviceManagementEventAdditionalInfo
        search_criteria_device_management_event_login_id:
            searchCriteriaDeviceManagementEventLoginId
    """

    _ELEMENTS = (
        E("event_queue_type", "eventQueueType", str),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_exact_device_management_event_status_in_progress_or_pending",
            "searchCriteriaExactDeviceManagementEventStatusInProgressOrPending",
            OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_status_completed",
            "searchCriteriaExactDeviceManagementEventStatusCompleted",
            OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_action",
            "searchCriteriaExactDeviceManagementEventAction",
            OCI.SearchCriteriaExactDeviceManagementEventAction, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_level",
            "searchCriteriaExactDeviceManagementEventLevel",
            OCI.SearchCriteriaExactDeviceManagementEventLevel, is_complex=True,
        ),
        E(
            "search_criteria_exact_device_management_event_type",
            "searchCriteriaExactDeviceManagementEventType",
            OCI.SearchCriteriaExactDeviceManagementEventType, is_complex=True,
        ),
        E(
            "search_criteria_device_management_event_additional_info",
            "searchCriteriaDeviceManagementEventAdditionalInfo",
            OCI.SearchCriteriaDeviceManagementEventAdditionalInfo, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_device_management_event_login_id",
            "searchCriteriaDeviceManagementEventLoginId",
            OCI.SearchCriteriaDeviceManagementEventLoginId, is_complex=True, is_array=True,
        ),
    )

    event_queue_type: str = Field(type=str, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_exact_device_management_event_status_in_progress_or_pending: "OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusInProgressOrPending,
        required=False, mutable=False,
    )
    search_criteria_exact_device_management_event_status_completed: "OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventStatusCompleted, required=False,
        mutable=False,
    )
    search_criteria_exact_device_management_event_action: "OCI.SearchCriteriaExactDeviceManagementEventAction" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventAction, required=False,
        mutable=False,
    )
    search_criteria_exact_device_management_event_level: "OCI.SearchCriteriaExactDeviceManagementEventLevel" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventLevel, required=False,
        mutable=False,
    )
    search_criteria_exact_device_management_event_type: "OCI.SearchCriteriaExactDeviceManagementEventType" = Field(
        type=OCI.SearchCriteriaExactDeviceManagementEventType, required=False,
        mutable=False,
    )
    search_criteria_device_management_event_additional_info: "List[OCI.SearchCriteriaDeviceManagementEventAdditionalInfo]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_management_event_login_id: "List[OCI.SearchCriteriaDeviceManagementEventLoginId]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemDeviceProfileAuthenticationLockoutClearRequest(OCIRequest):
    """
    Request to clear device profile authentication lockouts in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        access_device: accessDevice
    """

    _ELEMENTS = (
        E(
            "access_device", "accessDevice", OCI.AccessDeviceKey, is_complex=True,
            is_required=True,
        ),
    )

    access_device: "OCI.AccessDeviceKey" = Field(
        type=OCI.AccessDeviceKey, required=True, mutable=False,
    )


class SystemDeviceProfileAuthenticationLockoutGetRequest(OCIRequest):
    """
    Request to get device password authentication lockout data in the system.

    The response is either a ``SystemDeviceProfileAuthenticationLockoutGetResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_service_provider_id: searchCriteriaServiceProviderId
        search_criteria_exact_organization_type: searchCriteriaExactOrganizationType
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_exact_device_type: searchCriteriaExactDeviceType
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_service_provider_id", "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType, is_complex=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_device_type", "searchCriteriaExactDeviceType",
            OCI.SearchCriteriaExactDeviceType, is_complex=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_service_provider_id: "List[OCI.SearchCriteriaServiceProviderId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_organization_type: "OCI.SearchCriteriaExactOrganizationType" = Field(
        type=OCI.SearchCriteriaExactOrganizationType, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_device_type: "OCI.SearchCriteriaExactDeviceType" = Field(
        type=OCI.SearchCriteriaExactDeviceType, required=False, mutable=False,
    )


class SystemDialableCallerIDCriteriaModifyRequest(OCIRequest):
    """
    Modify a Dialable Caller ID Criteria.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        description: description
        prefix_digits: prefixDigits
        match_call_type: matchCallType
        match_alternate_call_indicator: matchAlternateCallIndicator
        match_local_category: matchLocalCategory
        match_national_category: matchNationalCategory
        match_interlata_category: matchInterlataCategory
        match_intralata_category: matchIntralataCategory
        match_international_category: matchInternationalCategory
        match_private_category: matchPrivateCategory
        match_emergency_category: matchEmergencyCategory
        match_other_category: matchOtherCategory
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("prefix_digits", "prefixDigits", str),
        E(
            "match_call_type", "matchCallType",
            OCI.ReplacementCommunicationBarringCallTypeList, is_complex=True,
        ),
        E(
            "match_alternate_call_indicator", "matchAlternateCallIndicator",
            OCI.ReplacementCommunicationBarringAlternateCallIndicatorList, is_complex=True,
        ),
        E("match_local_category", "matchLocalCategory", bool),
        E("match_national_category", "matchNationalCategory", bool),
        E("match_interlata_category", "matchInterlataCategory", bool),
        E("match_intralata_category", "matchIntralataCategory", bool),
        E("match_international_category", "matchInternationalCategory", bool),
        E("match_private_category", "matchPrivateCategory", bool),
        E("match_emergency_category", "matchEmergencyCategory", bool),
        E("match_other_category", "matchOtherCategory", bool),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    prefix_digits: str = Field(type=str, required=False, mutable=False)
    match_call_type: "OCI.ReplacementCommunicationBarringCallTypeList" = Field(
        type=OCI.ReplacementCommunicationBarringCallTypeList, required=False,
        mutable=False,
    )
    match_alternate_call_indicator: "OCI.ReplacementCommunicationBarringAlternateCallIndicatorList" = Field(
        type=OCI.ReplacementCommunicationBarringAlternateCallIndicatorList,
        required=False, mutable=False,
    )
    match_local_category: bool = Field(type=bool, required=False, mutable=False)
    match_national_category: bool = Field(type=bool, required=False, mutable=False)
    match_interlata_category: bool = Field(type=bool, required=False, mutable=False)
    match_intralata_category: bool = Field(type=bool, required=False, mutable=False)
    match_international_category: bool = Field(type=bool, required=False, mutable=False)
    match_private_category: bool = Field(type=bool, required=False, mutable=False)
    match_emergency_category: bool = Field(type=bool, required=False, mutable=False)
    match_other_category: bool = Field(type=bool, required=False, mutable=False)


class SystemDialableCallerIDModifyRequest(OCIRequest):
    """
    Modify the system level Dialable Caller ID criteria list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        criteria_priority_order: criteriaPriorityOrder
    """

    _ELEMENTS = (
        E(
            "criteria_priority_order", "criteriaPriorityOrder",
            OCI.DialableCallerIDCriteriaPriorityOrder, is_complex=True, is_array=True,
        ),
    )

    criteria_priority_order: "List[OCI.DialableCallerIDCriteriaPriorityOrder]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemEndpointGetListRequest(OCIRequest):
    """
    Request to search endpoints in the system.

    The response is either ``SystemEndpointGetListResponse()`` or ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_service_provider_id: searchCriteriaServiceProviderId
        search_criteria_exact_organization_type: searchCriteriaExactOrganizationType
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_line_port_user_part: searchCriteriaLinePortUserPart
        search_criteria_line_port_domain: searchCriteriaLinePortDomain
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_device_type: searchCriteriaDeviceType
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_device_mac_address: searchCriteriaDeviceMACAddress
        search_criteria_device_net_address: searchCriteriaDeviceNetAddress
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_service_provider_id", "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType, is_complex=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_user_part", "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_domain", "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_type", "searchCriteriaDeviceType",
            OCI.SearchCriteriaDeviceType, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_mac_address", "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_net_address", "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_service_provider_id: "List[OCI.SearchCriteriaServiceProviderId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_organization_type: "OCI.SearchCriteriaExactOrganizationType" = Field(
        type=OCI.SearchCriteriaExactOrganizationType, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_user_part: "List[OCI.SearchCriteriaLinePortUserPart]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_domain: "List[OCI.SearchCriteriaLinePortDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_type: "List[OCI.SearchCriteriaDeviceType]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_mac_address: "List[OCI.SearchCriteriaDeviceMACAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_net_address: "List[OCI.SearchCriteriaDeviceNetAddress]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemFeatureAccessCodeModifyListRequest(OCIRequest):
    """
    Modify default Feature Access Codes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeEntry,
            is_complex=True, is_array=True,
        ),
    )

    feature_access_code: "List[OCI.FeatureAccessCodeEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemFeatureAccessCodeModifyListRequest20(OCIRequest):
    """
    Modify default Feature Access Codes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. In release
    20 the "Call Recording" FAC name is changed to "Call Recording - Start". Replaced by:
    ``SystemFeatureAccessCodeModifyListRequest21()``

    Attributes:
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeEntry,
            is_complex=True, is_array=True,
        ),
    )

    feature_access_code: "List[OCI.FeatureAccessCodeEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemFeatureAccessCodeModifyListRequest21(OCIRequest):
    """
    Modify default Feature Access Codes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. In release
    20 the "Call Recording" FAC name is changed to "Call Recording - Start".

    Attributes:
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E(
            "feature_access_code", "featureAccessCode", OCI.FeatureAccessCodeModifyEntry,
            is_complex=True, is_array=True,
        ),
    )

    feature_access_code: "List[OCI.FeatureAccessCodeModifyEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemFileRepositoryDeviceAddRequest(OCIRequest):
    """
    Add a new file repository.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
        root_directory: rootDirectory
        port: port
        protocol_web_dav: protocolWebDAV
        protocol_ftp: protocolFTP
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("root_directory", "rootDirectory", str),
        E("port", "port", int),
        E(
            "protocol_web_dav", "protocolWebDAV", OCI.FileRepositoryProtocolWebDAV,
            is_complex=True,
        ),
        E("protocol_ftp", "protocolFTP", OCI.FileRepositoryProtocolFTP, is_complex=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    root_directory: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    protocol_web_dav: "OCI.FileRepositoryProtocolWebDAV" = Field(
        type=OCI.FileRepositoryProtocolWebDAV, required=False, mutable=False,
    )
    protocol_ftp: "OCI.FileRepositoryProtocolFTP" = Field(
        type=OCI.FileRepositoryProtocolFTP, required=False, mutable=False,
    )


class SystemFileRepositoryDeviceAddRequest16(OCIRequest):
    """
    Add a new file repository.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
        root_directory: rootDirectory
        port: port
        protocol_web_dav: protocolWebDAV
        protocol_ftp: protocolFTP
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("root_directory", "rootDirectory", str),
        E("port", "port", int),
        E(
            "protocol_web_dav", "protocolWebDAV", OCI.FileRepositoryProtocolWebDAV,
            is_complex=True,
        ),
        E("protocol_ftp", "protocolFTP", OCI.FileRepositoryProtocolFTP16, is_complex=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    root_directory: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    protocol_web_dav: "OCI.FileRepositoryProtocolWebDAV" = Field(
        type=OCI.FileRepositoryProtocolWebDAV, required=False, mutable=False,
    )
    protocol_ftp: "OCI.FileRepositoryProtocolFTP16" = Field(
        type=OCI.FileRepositoryProtocolFTP16, required=False, mutable=False,
    )


class SystemFileRepositoryDeviceAddRequest20(OCIRequest):
    """
    Add a new file repository.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        name: name
        root_directory: rootDirectory
        port: port
        protocol_web_dav: protocolWebDAV
        protocol_ftp: protocolFTP
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("root_directory", "rootDirectory", str),
        E("port", "port", int),
        E(
            "protocol_web_dav", "protocolWebDAV", OCI.FileRepositoryProtocolWebDAV20,
            is_complex=True,
        ),
        E("protocol_ftp", "protocolFTP", OCI.FileRepositoryProtocolFTP16, is_complex=True),
    )

    name: str = Field(type=str, required=True, mutable=False)
    root_directory: str = Field(type=str, required=False, mutable=False)
    port: int = Field(type=int, required=False, mutable=False)
    protocol_web_dav: "OCI.FileRepositoryProtocolWebDAV20" = Field(
        type=OCI.FileRepositoryProtocolWebDAV20, required=False, mutable=False,
    )
    protocol_ftp: "OCI.FileRepositoryProtocolFTP16" = Field(
        type=OCI.FileRepositoryProtocolFTP16, required=False, mutable=False,
    )


class SystemGetRegistrationContactListRequest(OCIRequest):
    """
    Get the list of registration contacts.

    This request handles all levels of administration privileges.  The content of the
    response will only contain items within the scope of the requester's login id.  At the
    system level any of the choice parameters may be specified to filter the registrations
    listed.  At the service provider level the serviceProviderId must be specified for the
    service provider and group options.  When using the userId or linePort options the
    specified value must be valid for that service provider login.  At the group level the
    servicProviderId and the groupId must be specified for the group option.  When using
    the userId or linePort options the specified value must be valid for that group login.
    The serviceProviderId option is not valid at the group level.  At the user level when
    using the userId or linePort options the specified value must be valid for that user
    login.  The serviceProviderId and groupId options are not valid at the user level.

    The response is either ``SystemGetRegistrationContactListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        svc_provider_id: svcProviderId
        group_id: groupId
        user_id: userId
        line_port: linePort
        device_level: deviceLevel
        device_name: deviceName
        device_type: deviceType
        search_criteria_registration_uri: searchCriteriaRegistrationURI
        search_criteria_sip_contact: searchCriteriaSIPContact
        endpoint_type: endpointType
        expired: expired
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str),
        E("svc_provider_id", "svcProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("user_id", "userId", str),
        E("line_port", "linePort", str),
        E("device_level", "deviceLevel", str),
        E("device_name", "deviceName", str),
        E("device_type", "deviceType", str),
        E(
            "search_criteria_registration_uri", "searchCriteriaRegistrationURI",
            OCI.SearchCriteriaRegistrationURI, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_sip_contact", "searchCriteriaSIPContact",
            OCI.SearchCriteriaSIPContact, is_complex=True, is_array=True,
        ),
        E("endpoint_type", "endpointType", str),
        E("expired", "expired", bool),
    )

    service_provider_id: str = Field(type=str, required=False, mutable=False)
    svc_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=False, mutable=False)
    line_port: str = Field(type=str, required=False, mutable=False)
    device_level: str = Field(type=str, required=False, mutable=False)
    device_name: str = Field(type=str, required=False, mutable=False)
    device_type: str = Field(type=str, required=False, mutable=False)
    search_criteria_registration_uri: "List[OCI.SearchCriteriaRegistrationURI]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_sip_contact: "List[OCI.SearchCriteriaSIPContact]" = Field(
        type=list, required=False, mutable=False,
    )
    endpoint_type: str = Field(type=str, required=False, mutable=False)
    expired: bool = Field(type=bool, required=False, mutable=False)


class SystemHolidayScheduleAddRequest(OCIRequest):
    """
    Add a system holiday schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        holiday_schedule_name: holidayScheduleName
        holiday01: holiday01
        holiday02: holiday02
        holiday03: holiday03
        holiday04: holiday04
        holiday05: holiday05
        holiday06: holiday06
        holiday07: holiday07
        holiday08: holiday08
        holiday09: holiday09
        holiday10: holiday10
        holiday11: holiday11
        holiday12: holiday12
        holiday13: holiday13
        holiday14: holiday14
        holiday15: holiday15
        holiday16: holiday16
        holiday17: holiday17
        holiday18: holiday18
        holiday19: holiday19
        holiday20: holiday20
    """

    _ELEMENTS = (
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
        E("holiday01", "holiday01", OCI.Holiday, is_complex=True),
        E("holiday02", "holiday02", OCI.Holiday, is_complex=True),
        E("holiday03", "holiday03", OCI.Holiday, is_complex=True),
        E("holiday04", "holiday04", OCI.Holiday, is_complex=True),
        E("holiday05", "holiday05", OCI.Holiday, is_complex=True),
        E("holiday06", "holiday06", OCI.Holiday, is_complex=True),
        E("holiday07", "holiday07", OCI.Holiday, is_complex=True),
        E("holiday08", "holiday08", OCI.Holiday, is_complex=True),
        E("holiday09", "holiday09", OCI.Holiday, is_complex=True),
        E("holiday10", "holiday10", OCI.Holiday, is_complex=True),
        E("holiday11", "holiday11", OCI.Holiday, is_complex=True),
        E("holiday12", "holiday12", OCI.Holiday, is_complex=True),
        E("holiday13", "holiday13", OCI.Holiday, is_complex=True),
        E("holiday14", "holiday14", OCI.Holiday, is_complex=True),
        E("holiday15", "holiday15", OCI.Holiday, is_complex=True),
        E("holiday16", "holiday16", OCI.Holiday, is_complex=True),
        E("holiday17", "holiday17", OCI.Holiday, is_complex=True),
        E("holiday18", "holiday18", OCI.Holiday, is_complex=True),
        E("holiday19", "holiday19", OCI.Holiday, is_complex=True),
        E("holiday20", "holiday20", OCI.Holiday, is_complex=True),
    )

    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)
    holiday01: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday02: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday03: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday04: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday05: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday06: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday07: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday08: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday09: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday10: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday11: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday12: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday13: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday14: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday15: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday16: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday17: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday18: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday19: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday20: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)


class SystemHolidayScheduleModifyRequest(OCIRequest):
    """
    Modify a system holiday schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        holiday_schedule_name: holidayScheduleName
        new_holiday_schedule_name: newHolidayScheduleName
        holiday01: holiday01
        holiday02: holiday02
        holiday03: holiday03
        holiday04: holiday04
        holiday05: holiday05
        holiday06: holiday06
        holiday07: holiday07
        holiday08: holiday08
        holiday09: holiday09
        holiday10: holiday10
        holiday11: holiday11
        holiday12: holiday12
        holiday13: holiday13
        holiday14: holiday14
        holiday15: holiday15
        holiday16: holiday16
        holiday17: holiday17
        holiday18: holiday18
        holiday19: holiday19
        holiday20: holiday20
    """

    _ELEMENTS = (
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
        E("new_holiday_schedule_name", "newHolidayScheduleName", str),
        E("holiday01", "holiday01", OCI.Holiday, is_complex=True),
        E("holiday02", "holiday02", OCI.Holiday, is_complex=True),
        E("holiday03", "holiday03", OCI.Holiday, is_complex=True),
        E("holiday04", "holiday04", OCI.Holiday, is_complex=True),
        E("holiday05", "holiday05", OCI.Holiday, is_complex=True),
        E("holiday06", "holiday06", OCI.Holiday, is_complex=True),
        E("holiday07", "holiday07", OCI.Holiday, is_complex=True),
        E("holiday08", "holiday08", OCI.Holiday, is_complex=True),
        E("holiday09", "holiday09", OCI.Holiday, is_complex=True),
        E("holiday10", "holiday10", OCI.Holiday, is_complex=True),
        E("holiday11", "holiday11", OCI.Holiday, is_complex=True),
        E("holiday12", "holiday12", OCI.Holiday, is_complex=True),
        E("holiday13", "holiday13", OCI.Holiday, is_complex=True),
        E("holiday14", "holiday14", OCI.Holiday, is_complex=True),
        E("holiday15", "holiday15", OCI.Holiday, is_complex=True),
        E("holiday16", "holiday16", OCI.Holiday, is_complex=True),
        E("holiday17", "holiday17", OCI.Holiday, is_complex=True),
        E("holiday18", "holiday18", OCI.Holiday, is_complex=True),
        E("holiday19", "holiday19", OCI.Holiday, is_complex=True),
        E("holiday20", "holiday20", OCI.Holiday, is_complex=True),
    )

    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)
    new_holiday_schedule_name: str = Field(type=str, required=False, mutable=False)
    holiday01: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday02: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday03: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday04: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday05: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday06: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday07: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday08: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday09: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday10: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday11: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday12: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday13: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday14: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday15: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday16: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday17: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday18: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday19: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday20: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)


class SystemHomeNetworkGetListRequest(OCIRequest):
    """
    Get the list of all Home Networks.

    The response is either a ``SystemHomeNetworkGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_home_msc_address: searchCriteriaHomeMscAddress
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_home_msc_address", "searchCriteriaHomeMscAddress",
            OCI.SearchCriteriaHomeMscAddress, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_home_msc_address: "List[OCI.SearchCriteriaHomeMscAddress]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemInterceptUserAddDnListRequest(OCIRequest):
    """
    Request to add an Intercept User number(s) to the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        intercept_dn_list: interceptDNList
    """

    _ELEMENTS = (
        E(
            "intercept_dn_list", "interceptDNList", OCI.InterceptDNListEntry,
            is_complex=True, is_required=True,
        ),
    )

    intercept_dn_list: "OCI.InterceptDNListEntry" = Field(
        type=OCI.InterceptDNListEntry, required=True, mutable=False,
    )


class SystemLogConfigModifyRequest(OCIRequest):
    """
    Modify the log configuration file.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        config_file: configFile
    """

    _ELEMENTS = (
        E("config_file", "configFile", OCI.FileResource, is_complex=True),
    )

    config_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )


class SystemMediaSetModifyRequest(OCIRequest):
    """
    Request to modify a Media Set.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        set_name: setName
        media_name_list: mediaNameList
    """

    _ELEMENTS = (
        E("set_name", "setName", str, is_required=True),
        E("media_name_list", "mediaNameList", OCI.ReplacementMediaNameList, is_complex=True),
    )

    set_name: str = Field(type=str, required=True, mutable=False)
    media_name_list: "OCI.ReplacementMediaNameList" = Field(
        type=OCI.ReplacementMediaNameList, required=False, mutable=False,
    )


class SystemMeetMeConferencingModifyRequest(OCIRequest):
    """
    Modify the system level data associated with Meet-Me Conferencing.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        conference_id_length: conferenceIdLength
        moderator_pin_length: moderatorPinLength
        enable_conference_end_date_restriction: enableConferenceEndDateRestriction
        conference_end_date_restriction_months: conferenceEndDateRestrictionMonths
        delete_expired_conferences_after_hold_period:
            deleteExpiredConferencesAfterHoldPeriod
        expired_conference_hold_period_days: expiredConferenceHoldPeriodDays
        recording_web_app_url: recordingWebAppURL
        recording_file_format: recordingFileFormat
        terminate_after_grace_period: terminateAfterGracePeriod
        conference_grace_period_minutes: conferenceGracePeriodMinutes
        conference_participant_early_entry_minutes: conferenceParticipantEarlyEntryMinutes
        enable_conference_expiry_notification: enableConferenceExpiryNotification
        enable_active_conference_notification: enableActiveConferenceNotification
        conference_from_address: conferenceFromAddress
        conference_active_talker_refresh_interval_seconds:
            conferenceActiveTalkerRefreshIntervalSeconds
    """

    _ELEMENTS = (
        E("conference_id_length", "conferenceIdLength", int),
        E("moderator_pin_length", "moderatorPinLength", int),
        E(
            "enable_conference_end_date_restriction",
            "enableConferenceEndDateRestriction", bool,
        ),
        E(
            "conference_end_date_restriction_months",
            "conferenceEndDateRestrictionMonths", int,
        ),
        E(
            "delete_expired_conferences_after_hold_period",
            "deleteExpiredConferencesAfterHoldPeriod", bool,
        ),
        E("expired_conference_hold_period_days", "expiredConferenceHoldPeriodDays", int),
        E("recording_web_app_url", "recordingWebAppURL", str),
        E("recording_file_format", "recordingFileFormat", str),
        E("terminate_after_grace_period", "terminateAfterGracePeriod", bool),
        E(
            "conference_grace_period_minutes", "conferenceGracePeriodMinutes",
            OCI.MeetMeConferencingConferenceDuration, is_complex=True,
        ),
        E(
            "conference_participant_early_entry_minutes",
            "conferenceParticipantEarlyEntryMinutes", int,
        ),
        E(
            "enable_conference_expiry_notification", "enableConferenceExpiryNotification",
            bool,
        ),
        E(
            "enable_active_conference_notification", "enableActiveConferenceNotification",
            bool,
        ),
        E("conference_from_address", "conferenceFromAddress", str),
        E(
            "conference_active_talker_refresh_interval_seconds",
            "conferenceActiveTalkerRefreshIntervalSeconds", int,
        ),
    )

    conference_id_length: int = Field(type=int, required=False, mutable=False)
    moderator_pin_length: int = Field(type=int, required=False, mutable=False)
    enable_conference_end_date_restriction: bool = Field(
        type=bool, required=False, mutable=False,
    )
    conference_end_date_restriction_months: int = Field(
        type=int, required=False, mutable=False,
    )
    delete_expired_conferences_after_hold_period: bool = Field(
        type=bool, required=False, mutable=False,
    )
    expired_conference_hold_period_days: int = Field(type=int, required=False, mutable=False)
    recording_web_app_url: str = Field(type=str, required=False, mutable=False)
    recording_file_format: str = Field(type=str, required=False, mutable=False)
    terminate_after_grace_period: bool = Field(type=bool, required=False, mutable=False)
    conference_grace_period_minutes: "OCI.MeetMeConferencingConferenceDuration" = Field(
        type=OCI.MeetMeConferencingConferenceDuration, required=False, mutable=False,
    )
    conference_participant_early_entry_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    enable_conference_expiry_notification: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_active_conference_notification: bool = Field(
        type=bool, required=False, mutable=False,
    )
    conference_from_address: str = Field(type=str, required=False, mutable=False)
    conference_active_talker_refresh_interval_seconds: int = Field(
        type=int, required=False, mutable=False,
    )


class SystemNetworkClassOfServiceAddRequest(OCIRequest):
    """
    Add a new Network Class of Service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        description: description
        communication_barring_profile0: communicationBarringProfile0
        communication_barring_profile1: communicationBarringProfile1
        communication_barring_profile2: communicationBarringProfile2
        communication_barring_profile3: communicationBarringProfile3
        communication_barring_profile4: communicationBarringProfile4
        communication_barring_profile5: communicationBarringProfile5
        communication_barring_profile6: communicationBarringProfile6
        communication_barring_profile7: communicationBarringProfile7
        communication_barring_profile8: communicationBarringProfile8
        communication_barring_profile9: communicationBarringProfile9
        network_translation_index: networkTranslationIndex
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E(
            "communication_barring_profile0", "communicationBarringProfile0",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile1", "communicationBarringProfile1",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile2", "communicationBarringProfile2",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile3", "communicationBarringProfile3",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile4", "communicationBarringProfile4",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile5", "communicationBarringProfile5",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile6", "communicationBarringProfile6",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile7", "communicationBarringProfile7",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile8", "communicationBarringProfile8",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile9", "communicationBarringProfile9",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E("network_translation_index", "networkTranslationIndex", str),
        E("call_processing_policy_profile_name", "callProcessingPolicyProfileName", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    communication_barring_profile0: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile1: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile2: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile3: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile4: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile5: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile6: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile7: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile8: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile9: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    network_translation_index: str = Field(type=str, required=False, mutable=False)
    call_processing_policy_profile_name: str = Field(type=str, required=False, mutable=False)


class SystemNetworkClassOfServiceModifyRequest(OCIRequest):
    """
    Modify an existing Network Class of Service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        name: name
        new_name: newName
        description: description
        communication_barring_profile0: communicationBarringProfile0
        communication_barring_profile1: communicationBarringProfile1
        communication_barring_profile2: communicationBarringProfile2
        communication_barring_profile3: communicationBarringProfile3
        communication_barring_profile4: communicationBarringProfile4
        communication_barring_profile5: communicationBarringProfile5
        communication_barring_profile6: communicationBarringProfile6
        communication_barring_profile7: communicationBarringProfile7
        communication_barring_profile8: communicationBarringProfile8
        communication_barring_profile9: communicationBarringProfile9
        network_translation_index: networkTranslationIndex
        call_processing_policy_profile_name: callProcessingPolicyProfileName
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E(
            "communication_barring_profile0", "communicationBarringProfile0",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile1", "communicationBarringProfile1",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile2", "communicationBarringProfile2",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile3", "communicationBarringProfile3",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile4", "communicationBarringProfile4",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile5", "communicationBarringProfile5",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile6", "communicationBarringProfile6",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile7", "communicationBarringProfile7",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile8", "communicationBarringProfile8",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E(
            "communication_barring_profile9", "communicationBarringProfile9",
            OCI.NetworkClassOfServiceCommunicationBarringProfile, is_complex=True,
        ),
        E("network_translation_index", "networkTranslationIndex", str),
        E("call_processing_policy_profile_name", "callProcessingPolicyProfileName", str),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    communication_barring_profile0: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile1: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile2: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile3: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile4: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile5: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile6: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile7: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile8: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    communication_barring_profile9: "OCI.NetworkClassOfServiceCommunicationBarringProfile" = Field(
        type=OCI.NetworkClassOfServiceCommunicationBarringProfile, required=False,
        mutable=False,
    )
    network_translation_index: str = Field(type=str, required=False, mutable=False)
    call_processing_policy_profile_name: str = Field(type=str, required=False, mutable=False)


class SystemNumberPortabilityQueryDigitPatternGetListRequest(OCIRequest):
    """
    Request to get the System Number Portability Query Digit Pattern List information.

    The response is either a ``SystemNumberPortabilityQueryDigitPatternGetListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        search_criteria_number_portability_query_digit_pattern:
            searchCriteriaNumberPortabilityQueryDigitPattern
        search_criteria_number_portability_status: searchCriteriaNumberPortabilityStatus
        response_size_limit: responseSizeLimit
    """

    _ELEMENTS = (
        E(
            "search_criteria_number_portability_query_digit_pattern",
            "searchCriteriaNumberPortabilityQueryDigitPattern",
            OCI.SearchCriteriaNumberPortabilityQueryDigitPattern, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_number_portability_status",
            "searchCriteriaNumberPortabilityStatus",
            OCI.SearchCriteriaNumberPortabilityStatus, is_complex=True, is_array=True,
        ),
        E("response_size_limit", "responseSizeLimit", int),
    )

    search_criteria_number_portability_query_digit_pattern: "List[OCI.SearchCriteriaNumberPortabilityQueryDigitPattern]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_number_portability_status: "List[OCI.SearchCriteriaNumberPortabilityStatus]" = Field(
        type=list, required=False, mutable=False,
    )
    response_size_limit: int = Field(type=int, required=False, mutable=False)


class SystemOfficeZoneModifyRequest(OCIRequest):
    """
    Modify an existing Office Zone.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        office_zone_name: officeZoneName
        new_office_zone_name: newOfficeZoneName
        description: description
        replacement_zone_list: replacementZoneList
        primary_zone_name: primaryZoneName
    """

    _ELEMENTS = (
        E("office_zone_name", "officeZoneName", str, is_required=True),
        E("new_office_zone_name", "newOfficeZoneName", str),
        E("description", "description", str),
        E(
            "replacement_zone_list", "replacementZoneList", OCI.ReplacementZoneList,
            is_complex=True,
        ),
        E("primary_zone_name", "primaryZoneName", str),
    )

    office_zone_name: str = Field(type=str, required=True, mutable=False)
    new_office_zone_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    replacement_zone_list: "OCI.ReplacementZoneList" = Field(
        type=OCI.ReplacementZoneList, required=False, mutable=False,
    )
    primary_zone_name: str = Field(type=str, required=False, mutable=False)


class SystemPreferredCarrierGetGroupListRequest(OCIRequest):
    """
    Requests a list of groups using the specified carrier.

    It is possible to restrict the number of rows returned by specifying various search
    criteria.  Multiple search criteria are logically ANDed together.

    The response is either a ``SystemPreferredCarrierGetGroupListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        carrier: carrier
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_group_name: searchCriteriaGroupName
        search_criteria_exact_service_provider: searchCriteriaExactServiceProvider
    """

    _ELEMENTS = (
        E("carrier", "carrier", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_name", "searchCriteriaGroupName",
            OCI.SearchCriteriaGroupName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider", OCI.SearchCriteriaExactServiceProvider,
            is_complex=True,
        ),
    )

    carrier: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_name: "List[OCI.SearchCriteriaGroupName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_service_provider: "OCI.SearchCriteriaExactServiceProvider" = Field(
        type=OCI.SearchCriteriaExactServiceProvider, required=False, mutable=False,
    )


class SystemPreferredCarrierGetUserListRequest(OCIRequest):
    """
    Requests a list of users using the specified carrier.

    It is possible to restrict the number of rows returned by specifying various search
    criteria.  Multiple search criteria are logically ANDed together.

    The response is either a ``SystemPreferreredCarrierGetUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        carrier: carrier
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("carrier", "carrier", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    carrier: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemRoamingNetworkGetListRequest(OCIRequest):
    """
    Get the list of all Roaming Networks.

    The response is either a ``SystemRoamingNetworkGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_roaming_msc_address: searchCriteriaRoamingMscAddress
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_roaming_msc_address", "searchCriteriaRoamingMscAddress",
            OCI.SearchCriteriaRoamingMscAddress, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_roaming_msc_address: "List[OCI.SearchCriteriaRoamingMscAddress]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemSIPAuthenticationEndpointLockoutClearRequest(OCIRequest):
    """
    Request to clear sip authentication endpoint lockouts in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_endpoint_key: userEndpointKey
    """

    _ELEMENTS = (
        E(
            "user_endpoint_key", "userEndpointKey", OCI.UserEndpointKey, is_complex=True,
            is_required=True,
        ),
    )

    user_endpoint_key: "OCI.UserEndpointKey" = Field(
        type=OCI.UserEndpointKey, required=True, mutable=False,
    )


class SystemSIPAuthenticationEndpointLockoutGetRequest(OCIRequest):
    """
    Request to get sip authentication endpoint lockout data in the system.

    The response is either a ``SystemSIPAuthenticationEndpointLockoutGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_service_provider_id: searchCriteriaServiceProviderId
        search_criteria_exact_organization_type: searchCriteriaExactOrganizationType
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_line_port_user_part: searchCriteriaLinePortUserPart
        search_criteria_line_port_domain: searchCriteriaLinePortDomain
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_id: searchCriteriaUserId
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_service_provider_id", "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType, is_complex=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_user_part", "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_domain", "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_service_provider_id: "List[OCI.SearchCriteriaServiceProviderId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_organization_type: "OCI.SearchCriteriaExactOrganizationType" = Field(
        type=OCI.SearchCriteriaExactOrganizationType, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_user_part: "List[OCI.SearchCriteriaLinePortUserPart]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_domain: "List[OCI.SearchCriteriaLinePortDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemSIPAuthenticationTrunkGroupLockoutClearRequest(OCIRequest):
    """
    Request to clear sip authentication trunk group lockouts in the system.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        trunk_groupkey: trunkGroupkey
    """

    _ELEMENTS = (
        E(
            "trunk_groupkey", "trunkGroupkey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
    )

    trunk_groupkey: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )


class SystemSIPAuthenticationTrunkGroupLockoutGetRequest(OCIRequest):
    """
    Request to get sip authentication trunk group lockout data in the system.

    The response is either a ``SystemSIPAuthenticationTrunkGroupLockoutGetResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_service_provider_id: searchCriteriaServiceProviderId
        search_criteria_exact_organization_type: searchCriteriaExactOrganizationType
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_trunk_group_name: searchCriteriaTrunkGroupName
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_service_provider_id", "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType, is_complex=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_trunk_group_name", "searchCriteriaTrunkGroupName",
            OCI.SearchCriteriaTrunkGroupName, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_service_provider_id: "List[OCI.SearchCriteriaServiceProviderId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_organization_type: "OCI.SearchCriteriaExactOrganizationType" = Field(
        type=OCI.SearchCriteriaExactOrganizationType, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_trunk_group_name: "List[OCI.SearchCriteriaTrunkGroupName]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemSIPDeviceTypeAddRequest(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        authentication_override: authenticationOverride
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("authentication_override", "authenticationOverride", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E(
            "use_business_trunking_contact", "useBusinessTrunkingContact", bool,
            is_required=True,
        ),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E("cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions, is_complex=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    authentication_override: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions" = Field(
        type=OCI.CPEDeviceOptions, required=False, mutable=False,
    )


class SystemSIPDeviceTypeAddRequest14sp1(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemSIPDeviceTypeAddRequest14sp2()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        authentication_override: authenticationOverride
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("authentication_override", "authenticationOverride", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E(
            "use_business_trunking_contact", "useBusinessTrunkingContact", bool,
            is_required=True,
        ),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E("cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions, is_complex=True),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    authentication_override: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions" = Field(
        type=OCI.CPEDeviceOptions, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeAddRequest14sp2(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemSIPDeviceTypeAddRequest14sp3()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E(
            "use_business_trunking_contact", "useBusinessTrunkingContact", bool,
            is_required=True,
        ),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E("cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions, is_complex=True),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions" = Field(
        type=OCI.CPEDeviceOptions, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeAddRequest14sp3(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``SystemSIPDeviceTypeAddRequest14sp6()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        tdm_overlay: tdmOverlay
        supports_broad_works_info_for_call_waiting: supportsBroadWorksINFOForCallWaiting
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E(
            "use_business_trunking_contact", "useBusinessTrunkingContact", bool,
            is_required=True,
        ),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E("cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions, is_complex=True),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E("tdm_overlay", "tdmOverlay", bool, is_required=True),
        E(
            "supports_broad_works_info_for_call_waiting",
            "supportsBroadWorksINFOForCallWaiting", bool, is_required=True,
        ),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions" = Field(
        type=OCI.CPEDeviceOptions, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    tdm_overlay: bool = Field(type=bool, required=True, mutable=False)
    supports_broad_works_info_for_call_waiting: bool = Field(
        type=bool, required=True, mutable=False,
    )


class SystemSIPDeviceTypeFileAddRequest(OCIRequest):
    """
    Request to add a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemSIPDeviceTypeFileAddRequest14sp8()``

    Attributes:
        device_type: deviceType
        file_type: fileType
        file_format: fileFormat
        remote_file_format: remoteFileFormat
        file_category: fileCategory
        allow_file_customization: allowFileCustomization
        file_source: fileSource
        upload_file: uploadFile
        use_http_digest_authentication: useHttpDigestAuthentication
        mac_based_file_authentication: macBasedFileAuthentication
        user_name_password_file_authentication: userNamePasswordFileAuthentication
        mac_in_non_request_uri: macInNonRequestURI
        mac_format_in_non_request_uri: macFormatInNonRequestURI
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("remote_file_format", "remoteFileFormat", str, is_required=True),
        E("file_category", "fileCategory", str, is_required=True),
        E("allow_file_customization", "allowFileCustomization", bool, is_required=True),
        E("file_source", "fileSource", str, is_required=True),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E(
            "use_http_digest_authentication", "useHttpDigestAuthentication", bool,
            is_required=True,
        ),
        E(
            "mac_based_file_authentication", "macBasedFileAuthentication", bool,
            is_required=True,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication", bool, is_required=True,
        ),
        E("mac_in_non_request_uri", "macInNonRequestURI", bool, is_required=True),
        E("mac_format_in_non_request_uri", "macFormatInNonRequestURI", str),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    remote_file_format: str = Field(type=str, required=True, mutable=False)
    file_category: str = Field(type=str, required=True, mutable=False)
    allow_file_customization: bool = Field(type=bool, required=True, mutable=False)
    file_source: str = Field(type=str, required=True, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    use_http_digest_authentication: bool = Field(type=bool, required=True, mutable=False)
    mac_based_file_authentication: bool = Field(type=bool, required=True, mutable=False)
    user_name_password_file_authentication: bool = Field(
        type=bool, required=True, mutable=False,
    )
    mac_in_non_request_uri: bool = Field(type=bool, required=True, mutable=False)
    mac_format_in_non_request_uri: str = Field(type=str, required=False, mutable=False)


class SystemSIPDeviceTypeFileAddRequest14sp8(OCIRequest):
    """
    Request to add a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
        remote_file_format: remoteFileFormat
        file_category: fileCategory
        allow_file_customization: allowFileCustomization
        file_source: fileSource
        upload_file: uploadFile
        use_http_digest_authentication: useHttpDigestAuthentication
        mac_based_file_authentication: macBasedFileAuthentication
        user_name_password_file_authentication: userNamePasswordFileAuthentication
        mac_in_non_request_uri: macInNonRequestURI
        mac_format_in_non_request_uri: macFormatInNonRequestURI
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("remote_file_format", "remoteFileFormat", str, is_required=True),
        E("file_category", "fileCategory", str, is_required=True),
        E("allow_file_customization", "allowFileCustomization", bool, is_required=True),
        E("file_source", "fileSource", str, is_required=True),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E(
            "use_http_digest_authentication", "useHttpDigestAuthentication", bool,
            is_required=True,
        ),
        E(
            "mac_based_file_authentication", "macBasedFileAuthentication", bool,
            is_required=True,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication", bool, is_required=True,
        ),
        E("mac_in_non_request_uri", "macInNonRequestURI", bool, is_required=True),
        E("mac_format_in_non_request_uri", "macFormatInNonRequestURI", str),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    remote_file_format: str = Field(type=str, required=True, mutable=False)
    file_category: str = Field(type=str, required=True, mutable=False)
    allow_file_customization: bool = Field(type=bool, required=True, mutable=False)
    file_source: str = Field(type=str, required=True, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    use_http_digest_authentication: bool = Field(type=bool, required=True, mutable=False)
    mac_based_file_authentication: bool = Field(type=bool, required=True, mutable=False)
    user_name_password_file_authentication: bool = Field(
        type=bool, required=True, mutable=False,
    )
    mac_in_non_request_uri: bool = Field(type=bool, required=True, mutable=False)
    mac_format_in_non_request_uri: str = Field(type=str, required=False, mutable=False)


class SystemSIPDeviceTypeFileAddRequest16sp1(OCIRequest):
    """
    Replaced By ``SystemSIPDeviceTypeFileAddRequest18()``.

    Request to add a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
        remote_file_format: remoteFileFormat
        file_category: fileCategory
        file_customization: fileCustomization
        file_source: fileSource
        upload_file: uploadFile
        use_http_digest_authentication: useHttpDigestAuthentication
        mac_based_file_authentication: macBasedFileAuthentication
        user_name_password_file_authentication: userNamePasswordFileAuthentication
        mac_in_non_request_uri: macInNonRequestURI
        mac_format_in_non_request_uri: macFormatInNonRequestURI
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("remote_file_format", "remoteFileFormat", str, is_required=True),
        E("file_category", "fileCategory", str, is_required=True),
        E("file_customization", "fileCustomization", str, is_required=True),
        E("file_source", "fileSource", str, is_required=True),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E(
            "use_http_digest_authentication", "useHttpDigestAuthentication", bool,
            is_required=True,
        ),
        E(
            "mac_based_file_authentication", "macBasedFileAuthentication", bool,
            is_required=True,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication", bool, is_required=True,
        ),
        E("mac_in_non_request_uri", "macInNonRequestURI", bool, is_required=True),
        E("mac_format_in_non_request_uri", "macFormatInNonRequestURI", str),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    remote_file_format: str = Field(type=str, required=True, mutable=False)
    file_category: str = Field(type=str, required=True, mutable=False)
    file_customization: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=True, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    use_http_digest_authentication: bool = Field(type=bool, required=True, mutable=False)
    mac_based_file_authentication: bool = Field(type=bool, required=True, mutable=False)
    user_name_password_file_authentication: bool = Field(
        type=bool, required=True, mutable=False,
    )
    mac_in_non_request_uri: bool = Field(type=bool, required=True, mutable=False)
    mac_format_in_non_request_uri: str = Field(type=str, required=False, mutable=False)


class SystemSIPDeviceTypeFileAddRequest18(OCIRequest):
    """
    Request to add a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
        remote_file_format: remoteFileFormat
        file_category: fileCategory
        file_customization: fileCustomization
        file_source: fileSource
        upload_file: uploadFile
        use_http_digest_authentication: useHttpDigestAuthentication
        mac_based_file_authentication: macBasedFileAuthentication
        user_name_password_file_authentication: userNamePasswordFileAuthentication
        mac_in_non_request_uri: macInNonRequestURI
        mac_format_in_non_request_uri: macFormatInNonRequestURI
        allow_http: allowHttp
        allow_https: allowHttps
        allow_tftp: allowTftp
        enable_caching: enableCaching
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("remote_file_format", "remoteFileFormat", str, is_required=True),
        E("file_category", "fileCategory", str, is_required=True),
        E("file_customization", "fileCustomization", str, is_required=True),
        E("file_source", "fileSource", str, is_required=True),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E(
            "use_http_digest_authentication", "useHttpDigestAuthentication", bool,
            is_required=True,
        ),
        E(
            "mac_based_file_authentication", "macBasedFileAuthentication", bool,
            is_required=True,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication", bool, is_required=True,
        ),
        E("mac_in_non_request_uri", "macInNonRequestURI", bool, is_required=True),
        E("mac_format_in_non_request_uri", "macFormatInNonRequestURI", str),
        E("allow_http", "allowHttp", bool, is_required=True),
        E("allow_https", "allowHttps", bool, is_required=True),
        E("allow_tftp", "allowTftp", bool, is_required=True),
        E("enable_caching", "enableCaching", bool, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    remote_file_format: str = Field(type=str, required=True, mutable=False)
    file_category: str = Field(type=str, required=True, mutable=False)
    file_customization: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=True, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    use_http_digest_authentication: bool = Field(type=bool, required=True, mutable=False)
    mac_based_file_authentication: bool = Field(type=bool, required=True, mutable=False)
    user_name_password_file_authentication: bool = Field(
        type=bool, required=True, mutable=False,
    )
    mac_in_non_request_uri: bool = Field(type=bool, required=True, mutable=False)
    mac_format_in_non_request_uri: str = Field(type=str, required=False, mutable=False)
    allow_http: bool = Field(type=bool, required=True, mutable=False)
    allow_https: bool = Field(type=bool, required=True, mutable=False)
    allow_tftp: bool = Field(type=bool, required=True, mutable=False)
    enable_caching: bool = Field(type=bool, required=True, mutable=False)


class SystemSIPDeviceTypeFileAddRequest19(OCIRequest):
    """
    Request to add a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
        remote_file_format: remoteFileFormat
        file_category: fileCategory
        file_customization: fileCustomization
        file_source: fileSource
        upload_file: uploadFile
        use_http_digest_authentication: useHttpDigestAuthentication
        mac_based_file_authentication: macBasedFileAuthentication
        user_name_password_file_authentication: userNamePasswordFileAuthentication
        mac_in_non_request_uri: macInNonRequestURI
        mac_format_in_non_request_uri: macFormatInNonRequestURI
        allow_http: allowHttp
        allow_https: allowHttps
        allow_tftp: allowTftp
        enable_caching: enableCaching
        allow_upload_from_device: allowUploadFromDevice
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("remote_file_format", "remoteFileFormat", str, is_required=True),
        E("file_category", "fileCategory", str, is_required=True),
        E("file_customization", "fileCustomization", str, is_required=True),
        E("file_source", "fileSource", str, is_required=True),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E(
            "use_http_digest_authentication", "useHttpDigestAuthentication", bool,
            is_required=True,
        ),
        E(
            "mac_based_file_authentication", "macBasedFileAuthentication", bool,
            is_required=True,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication", bool, is_required=True,
        ),
        E("mac_in_non_request_uri", "macInNonRequestURI", bool, is_required=True),
        E("mac_format_in_non_request_uri", "macFormatInNonRequestURI", str),
        E("allow_http", "allowHttp", bool, is_required=True),
        E("allow_https", "allowHttps", bool, is_required=True),
        E("allow_tftp", "allowTftp", bool, is_required=True),
        E("enable_caching", "enableCaching", bool, is_required=True),
        E("allow_upload_from_device", "allowUploadFromDevice", bool, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    remote_file_format: str = Field(type=str, required=True, mutable=False)
    file_category: str = Field(type=str, required=True, mutable=False)
    file_customization: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=True, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    use_http_digest_authentication: bool = Field(type=bool, required=True, mutable=False)
    mac_based_file_authentication: bool = Field(type=bool, required=True, mutable=False)
    user_name_password_file_authentication: bool = Field(
        type=bool, required=True, mutable=False,
    )
    mac_in_non_request_uri: bool = Field(type=bool, required=True, mutable=False)
    mac_format_in_non_request_uri: str = Field(type=str, required=False, mutable=False)
    allow_http: bool = Field(type=bool, required=True, mutable=False)
    allow_https: bool = Field(type=bool, required=True, mutable=False)
    allow_tftp: bool = Field(type=bool, required=True, mutable=False)
    enable_caching: bool = Field(type=bool, required=True, mutable=False)
    allow_upload_from_device: bool = Field(type=bool, required=True, mutable=False)


class SystemSIPDeviceTypeFileAddRequest20(OCIRequest):
    """
    Request to add a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
        remote_file_format: remoteFileFormat
        file_category: fileCategory
        file_customization: fileCustomization
        file_source: fileSource
        upload_file: uploadFile
        use_http_digest_authentication: useHttpDigestAuthentication
        mac_based_file_authentication: macBasedFileAuthentication
        user_name_password_file_authentication: userNamePasswordFileAuthentication
        mac_in_non_request_uri: macInNonRequestURI
        mac_format_in_non_request_uri: macFormatInNonRequestURI
        allow_http: allowHttp
        allow_https: allowHttps
        allow_tftp: allowTftp
        enable_caching: enableCaching
        allow_upload_from_device: allowUploadFromDevice
        default_extended_file_capture_mode: defaultExtendedFileCaptureMode
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("remote_file_format", "remoteFileFormat", str, is_required=True),
        E("file_category", "fileCategory", str, is_required=True),
        E("file_customization", "fileCustomization", str, is_required=True),
        E("file_source", "fileSource", str, is_required=True),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E(
            "use_http_digest_authentication", "useHttpDigestAuthentication", bool,
            is_required=True,
        ),
        E(
            "mac_based_file_authentication", "macBasedFileAuthentication", bool,
            is_required=True,
        ),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication", bool, is_required=True,
        ),
        E("mac_in_non_request_uri", "macInNonRequestURI", bool, is_required=True),
        E("mac_format_in_non_request_uri", "macFormatInNonRequestURI", str),
        E("allow_http", "allowHttp", bool, is_required=True),
        E("allow_https", "allowHttps", bool, is_required=True),
        E("allow_tftp", "allowTftp", bool, is_required=True),
        E("enable_caching", "enableCaching", bool, is_required=True),
        E("allow_upload_from_device", "allowUploadFromDevice", bool, is_required=True),
        E("default_extended_file_capture_mode", "defaultExtendedFileCaptureMode", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    remote_file_format: str = Field(type=str, required=True, mutable=False)
    file_category: str = Field(type=str, required=True, mutable=False)
    file_customization: str = Field(type=str, required=True, mutable=False)
    file_source: str = Field(type=str, required=True, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    use_http_digest_authentication: bool = Field(type=bool, required=True, mutable=False)
    mac_based_file_authentication: bool = Field(type=bool, required=True, mutable=False)
    user_name_password_file_authentication: bool = Field(
        type=bool, required=True, mutable=False,
    )
    mac_in_non_request_uri: bool = Field(type=bool, required=True, mutable=False)
    mac_format_in_non_request_uri: str = Field(type=str, required=False, mutable=False)
    allow_http: bool = Field(type=bool, required=True, mutable=False)
    allow_https: bool = Field(type=bool, required=True, mutable=False)
    allow_tftp: bool = Field(type=bool, required=True, mutable=False)
    enable_caching: bool = Field(type=bool, required=True, mutable=False)
    allow_upload_from_device: bool = Field(type=bool, required=True, mutable=False)
    default_extended_file_capture_mode: bool = Field(type=bool, required=False, mutable=False)


class SystemSIPDeviceTypeFileModifyRequest(OCIRequest):
    """
    Request to modify a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``SystemSIPDeviceTypeFileModifyRequest14sp8()``

    Attributes:
        device_type: deviceType
        file_type: fileType
        allow_file_customization: allowFileCustomization
        file_source: fileSource
        upload_file: uploadFile
        use_http_digest_authentication: useHttpDigestAuthentication
        mac_based_file_authentication: macBasedFileAuthentication
        user_name_password_file_authentication: userNamePasswordFileAuthentication
        mac_in_non_request_uri: macInNonRequestURI
        mac_format_in_non_request_uri: macFormatInNonRequestURI
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_type", "fileType", str, is_required=True),
        E("allow_file_customization", "allowFileCustomization", bool),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E("use_http_digest_authentication", "useHttpDigestAuthentication", bool),
        E("mac_based_file_authentication", "macBasedFileAuthentication", bool),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication", bool,
        ),
        E("mac_in_non_request_uri", "macInNonRequestURI", bool),
        E("mac_format_in_non_request_uri", "macFormatInNonRequestURI", str),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_type: str = Field(type=str, required=True, mutable=False)
    allow_file_customization: bool = Field(type=bool, required=False, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    use_http_digest_authentication: bool = Field(type=bool, required=False, mutable=False)
    mac_based_file_authentication: bool = Field(type=bool, required=False, mutable=False)
    user_name_password_file_authentication: bool = Field(
        type=bool, required=False, mutable=False,
    )
    mac_in_non_request_uri: bool = Field(type=bool, required=False, mutable=False)
    mac_format_in_non_request_uri: str = Field(type=str, required=False, mutable=False)


class SystemSIPDeviceTypeFileModifyRequest14sp8(OCIRequest):
    """
    Request to modify a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        file_format: fileFormat
        allow_file_customization: allowFileCustomization
        file_source: fileSource
        upload_file: uploadFile
        use_http_digest_authentication: useHttpDigestAuthentication
        mac_based_file_authentication: macBasedFileAuthentication
        user_name_password_file_authentication: userNamePasswordFileAuthentication
        mac_in_non_request_uri: macInNonRequestURI
        mac_format_in_non_request_uri: macFormatInNonRequestURI
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("allow_file_customization", "allowFileCustomization", bool),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E("use_http_digest_authentication", "useHttpDigestAuthentication", bool),
        E("mac_based_file_authentication", "macBasedFileAuthentication", bool),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication", bool,
        ),
        E("mac_in_non_request_uri", "macInNonRequestURI", bool),
        E("mac_format_in_non_request_uri", "macFormatInNonRequestURI", str),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    allow_file_customization: bool = Field(type=bool, required=False, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    use_http_digest_authentication: bool = Field(type=bool, required=False, mutable=False)
    mac_based_file_authentication: bool = Field(type=bool, required=False, mutable=False)
    user_name_password_file_authentication: bool = Field(
        type=bool, required=False, mutable=False,
    )
    mac_in_non_request_uri: bool = Field(type=bool, required=False, mutable=False)
    mac_format_in_non_request_uri: str = Field(type=str, required=False, mutable=False)


class SystemSIPDeviceTypeFileModifyRequest16sp1(OCIRequest):
    """
    Request to modify a sip device type file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: defaultExtendedFileCaptureMode

    Attributes:
        device_type: deviceType
        file_format: fileFormat
        file_customization: fileCustomization
        file_source: fileSource
        upload_file: uploadFile
        use_http_digest_authentication: useHttpDigestAuthentication
        mac_based_file_authentication: macBasedFileAuthentication
        user_name_password_file_authentication: userNamePasswordFileAuthentication
        mac_in_non_request_uri: macInNonRequestURI
        mac_format_in_non_request_uri: macFormatInNonRequestURI
        allow_http: allowHttp
        allow_https: allowHttps
        allow_tftp: allowTftp
        enable_caching: enableCaching
        allow_upload_from_device: allowUploadFromDevice
        default_extended_file_capture_mode: defaultExtendedFileCaptureMode
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("file_format", "fileFormat", str, is_required=True),
        E("file_customization", "fileCustomization", str),
        E("file_source", "fileSource", str),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True),
        E("use_http_digest_authentication", "useHttpDigestAuthentication", bool),
        E("mac_based_file_authentication", "macBasedFileAuthentication", bool),
        E(
            "user_name_password_file_authentication",
            "userNamePasswordFileAuthentication", bool,
        ),
        E("mac_in_non_request_uri", "macInNonRequestURI", bool),
        E("mac_format_in_non_request_uri", "macFormatInNonRequestURI", str),
        E("allow_http", "allowHttp", bool),
        E("allow_https", "allowHttps", bool),
        E("allow_tftp", "allowTftp", bool),
        E("enable_caching", "enableCaching", bool),
        E("allow_upload_from_device", "allowUploadFromDevice", bool),
        E("default_extended_file_capture_mode", "defaultExtendedFileCaptureMode", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    file_format: str = Field(type=str, required=True, mutable=False)
    file_customization: str = Field(type=str, required=False, mutable=False)
    file_source: str = Field(type=str, required=False, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=False, mutable=False,
    )
    use_http_digest_authentication: bool = Field(type=bool, required=False, mutable=False)
    mac_based_file_authentication: bool = Field(type=bool, required=False, mutable=False)
    user_name_password_file_authentication: bool = Field(
        type=bool, required=False, mutable=False,
    )
    mac_in_non_request_uri: bool = Field(type=bool, required=False, mutable=False)
    mac_format_in_non_request_uri: str = Field(type=str, required=False, mutable=False)
    allow_http: bool = Field(type=bool, required=False, mutable=False)
    allow_https: bool = Field(type=bool, required=False, mutable=False)
    allow_tftp: bool = Field(type=bool, required=False, mutable=False)
    enable_caching: bool = Field(type=bool, required=False, mutable=False)
    allow_upload_from_device: bool = Field(type=bool, required=False, mutable=False)
    default_extended_file_capture_mode: bool = Field(type=bool, required=False, mutable=False)


class SystemSIPDeviceTypeGetListRequest(OCIRequest):
    """
    Request to get the list of sip device types in the system.

    See Also: ``SystemDeviceTypeGetAvailableListRequest14sp3()``.

    The response is either ``SystemSIPDeviceTypeGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_device_type: searchCriteriaDeviceType
        search_criteria_exact_signaling_address_type:
            searchCriteriaExactSignalingAddressType
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_device_type", "searchCriteriaDeviceType",
            OCI.SearchCriteriaDeviceType, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_signaling_address_type",
            "searchCriteriaExactSignalingAddressType",
            OCI.SearchCriteriaExactSignalingAddressType, is_complex=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_device_type: "List[OCI.SearchCriteriaDeviceType]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_signaling_address_type: "OCI.SearchCriteriaExactSignalingAddressType" = Field(
        type=OCI.SearchCriteriaExactSignalingAddressType, required=False, mutable=False,
    )


class SystemSIPDeviceTypeLanguageMappingModifyRequest(OCIRequest):
    """
    Request to modify the device language name that is mapped to a BroadWorks language
    name.

    The request can be used to map many languages.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        language_mapping: languageMapping
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "language_mapping", "languageMapping", OCI.DeviceManagementLanguageMapping,
            is_complex=True, is_array=True,
        ),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    language_mapping: "List[OCI.DeviceManagementLanguageMapping]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemScheduleAddEventRequest(OCIRequest):
    """
    Add an event to system schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after the startDate.  The endDate element is set to the sum of the
    adjusted starDate element value and the event duration.

    Attributes:
        schedule_key: scheduleKey
        event_name: eventName
        start_date: startDate
        all_day_event: allDayEvent
        start_time: startTime
        end_time: endTime
        end_date: endDate
        recurrence: recurrence
    """

    _ELEMENTS = (
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
        E("start_date", "startDate", str, is_required=True),
        E("all_day_event", "allDayEvent", bool),
        E("start_time", "startTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_time", "endTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_date", "endDate", str, is_required=True),
        E("recurrence", "recurrence", OCI.Recurrence, is_complex=True),
    )

    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)
    start_date: str = Field(type=str, required=True, mutable=False)
    all_day_event: bool = Field(type=bool, required=False, mutable=False)
    start_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_date: str = Field(type=str, required=True, mutable=False)
    recurrence: "OCI.Recurrence" = Field(type=OCI.Recurrence, required=False, mutable=False)


class SystemScheduleDeleteEventListRequest(OCIRequest):
    """
    Delete a list of events from a system schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        schedule_key: scheduleKey
        event_name: eventName
    """

    _ELEMENTS = (
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
    )

    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)


class SystemScheduleDeleteListRequest(OCIRequest):
    """
    Delete a list of system schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        schedule_key: scheduleKey
    """

    _ELEMENTS = (
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
    )

    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )


class SystemScheduleGetEventListRequest(OCIRequest):
    """
    Get the list of events of a system schedule.

    The response is either a ``SystemScheduleGetResponse()`` or an ``ErrorResponse()``.

    Attributes:
        schedule_key: scheduleKey
    """

    _ELEMENTS = (
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
    )

    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )


class SystemScheduleGetEventRequest(OCIRequest):
    """
    Get an event from a system schedule.

    The response is either a ``SystemScheduleGetEventResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        schedule_key: scheduleKey
        event_name: eventName
    """

    _ELEMENTS = (
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
    )

    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)


class SystemScheduleModifyEventRequest(OCIRequest):
    """
    Modify an event of a system schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after the startDate.  The endDate element is set to the sum of the
    adjusted starDate element value and the event duration.

    Attributes:
        schedule_key: scheduleKey
        event_name: eventName
        new_event_name: newEventName
        start_date: startDate
        all_day_event: allDayEvent
        start_time: startTime
        end_time: endTime
        end_date: endDate
        recurrence: recurrence
    """

    _ELEMENTS = (
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
        E("new_event_name", "newEventName", str),
        E("start_date", "startDate", str),
        E("all_day_event", "allDayEvent", bool),
        E("start_time", "startTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_time", "endTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_date", "endDate", str),
        E("recurrence", "recurrence", OCI.Recurrence, is_complex=True),
    )

    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)
    new_event_name: str = Field(type=str, required=False, mutable=False)
    start_date: str = Field(type=str, required=False, mutable=False)
    all_day_event: bool = Field(type=bool, required=False, mutable=False)
    start_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_date: str = Field(type=str, required=False, mutable=False)
    recurrence: "OCI.Recurrence" = Field(type=OCI.Recurrence, required=False, mutable=False)


class SystemScheduleModifyRequest(OCIRequest):
    """
    Modify a system schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        schedule_key: scheduleKey
        new_schedule_name: newScheduleName
    """

    _ELEMENTS = (
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("new_schedule_name", "newScheduleName", str),
    )

    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    new_schedule_name: str = Field(type=str, required=False, mutable=False)


class SystemSecurityClassificationAddClassificationRequest(OCIRequest):
    """
    Add a new Security Classification The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.


    Attributes:
        security_classification_name: securityClassificationName
        audio_file: audioFile
    """

    _ELEMENTS = (
        E(
            "security_classification_name", "securityClassificationName", str,
            is_required=True,
        ),
        E(
            "audio_file", "audioFile", OCI.LabeledMediaFileResource, is_complex=True,
            is_required=True,
        ),
    )

    security_classification_name: str = Field(type=str, required=True, mutable=False)
    audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=True, mutable=False,
    )


class SystemSecurityClassificationGetClassificationTrunkGroupUsageListRequest(OCIRequest):
    """
    Get a list of users that currently have the specified Security Classification
    assigned.

    The response is either
    ``SystemSecurityClassificationGetClassificationTrunkGroupUsageListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        security_classification: securityClassification
        response_size_limit: responseSizeLimit
        search_criteria_trunk_group_name: searchCriteriaTrunkGroupName
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_service_provider_id: searchCriteriaServiceProviderId
        search_criteria_exact_organization_type: searchCriteriaExactOrganizationType
    """

    _ELEMENTS = (
        E("security_classification", "securityClassification", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_trunk_group_name", "searchCriteriaTrunkGroupName",
            OCI.SearchCriteriaTrunkGroupName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_service_provider_id", "searchCriteriaServiceProviderId",
            OCI.SearchCriteriaServiceProviderId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_organization_type",
            "searchCriteriaExactOrganizationType",
            OCI.SearchCriteriaExactOrganizationType, is_complex=True,
        ),
    )

    security_classification: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_trunk_group_name: "List[OCI.SearchCriteriaTrunkGroupName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_service_provider_id: "List[OCI.SearchCriteriaServiceProviderId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_organization_type: "OCI.SearchCriteriaExactOrganizationType" = Field(
        type=OCI.SearchCriteriaExactOrganizationType, required=False, mutable=False,
    )


class SystemSecurityClassificationGetClassificationUserUsageListRequest(OCIRequest):
    """
    Get a list of users that currently have the specified Security Classification
    assigned.

    The response is either
    ``SystemSecurityClassificationGetClassificationUserUsageListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        security_classification: securityClassification
        response_size_limit: responseSizeLimit
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("security_classification", "securityClassification", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    security_classification: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemSecurityClassificationModifyClassificationRequest(OCIRequest):
    """
    Modify a Security Classification The response is either a ``SuccessResponse()`` or an
    ``ErrorResponse()``.


    Attributes:
        security_classification_name: securityClassificationName
        new_security_classification_name: newSecurityClassificationName
        audio_file: audioFile
    """

    _ELEMENTS = (
        E(
            "security_classification_name", "securityClassificationName", str,
            is_required=True,
        ),
        E("new_security_classification_name", "newSecurityClassificationName", str),
        E("audio_file", "audioFile", OCI.LabeledMediaFileResource, is_complex=True),
    )

    security_classification_name: str = Field(type=str, required=True, mutable=False)
    new_security_classification_name: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )


class SystemServiceCodeGetListRequest(OCIRequest):
    """
    Request to get all service codes that have been defined 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 ``SystemServiceCodeGetListResponse()`` or ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_service_code: searchCriteriaServiceCode
        search_criteria_service_code_description: searchCriteriaServiceCodeDescription
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_service_code", "searchCriteriaServiceCode",
            OCI.SearchCriteriaServiceCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_service_code_description",
            "searchCriteriaServiceCodeDescription",
            OCI.SearchCriteriaServiceCodeDescription, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_service_code: "List[OCI.SearchCriteriaServiceCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_service_code_description: "List[OCI.SearchCriteriaServiceCodeDescription]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemSystemServiceDnAddListRequest(OCIRequest):
    """
    Adds system service Dns.

    It is possible to add either: a single DN, a list of DNs a range of DNs, or any
    combination thereof.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
        dn_range: dnRange
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_array=True),
        E("dn_range", "dnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class SystemSystemServiceDnDeleteListRequest(OCIRequest):
    """
    Deletes system service DNs.

    It is possible to delete either: a single DN, a list of DNs, a range of DNs, or any
    combination thereof.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        phone_number: phoneNumber
        dn_range: dnRange
    """

    _ELEMENTS = (
        E("phone_number", "phoneNumber", str, is_array=True),
        E("dn_range", "dnRange", OCI.DNRange, is_complex=True, is_array=True),
    )

    phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)


class SystemSystemVoicePortalAddRequest(OCIRequest):
    """
    Request to add a system voice portal instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in IMS mode: publicUserIdentity, ignored in standalone mode if
    provided.

    Attributes:
        system_voice_portal_id: systemVoicePortalId
        name: name
        calling_line_id_name: callingLineIdName
        language: language
        time_zone: timeZone
        phone_number: phoneNumber
        public_user_identity: publicUserIdentity
        network_voice_portal_number: networkVoicePortalNumber
        allow_identification_by_phone_number_or_voice_mail_aliases_on_login:
            allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin
        use_voice_portal_wizard: useVoicePortalWizard
        use_voice_portal_default_greeting: useVoicePortalDefaultGreeting
        voice_portal_greeting_file: voicePortalGreetingFile
        use_voice_messaging_default_greeting: useVoiceMessagingDefaultGreeting
        voice_messaging_greeting_file: voiceMessagingGreetingFile
    """

    _ELEMENTS = (
        E("system_voice_portal_id", "systemVoicePortalId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("calling_line_id_name", "callingLineIdName", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("time_zone", "timeZone", str, is_required=True),
        E("phone_number", "phoneNumber", str),
        E("public_user_identity", "publicUserIdentity", str),
        E("network_voice_portal_number", "networkVoicePortalNumber", str),
        E(
            "allow_identification_by_phone_number_or_voice_mail_aliases_on_login",
            "allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin", bool,
            is_required=True,
        ),
        E("use_voice_portal_wizard", "useVoicePortalWizard", bool, is_required=True),
        E(
            "use_voice_portal_default_greeting", "useVoicePortalDefaultGreeting", bool,
            is_required=True,
        ),
        E(
            "voice_portal_greeting_file", "voicePortalGreetingFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E(
            "use_voice_messaging_default_greeting", "useVoiceMessagingDefaultGreeting",
            bool, is_required=True,
        ),
        E(
            "voice_messaging_greeting_file", "voiceMessagingGreetingFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
    )

    system_voice_portal_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    calling_line_id_name: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    time_zone: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    public_user_identity: str = Field(type=str, required=False, mutable=False)
    network_voice_portal_number: str = Field(type=str, required=False, mutable=False)
    allow_identification_by_phone_number_or_voice_mail_aliases_on_login: bool = Field(
        type=bool, required=True, mutable=False,
    )
    use_voice_portal_wizard: bool = Field(type=bool, required=True, mutable=False)
    use_voice_portal_default_greeting: bool = Field(type=bool, required=True, mutable=False)
    voice_portal_greeting_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    use_voice_messaging_default_greeting: bool = Field(
        type=bool, required=True, mutable=False,
    )
    voice_messaging_greeting_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )


class SystemSystemVoicePortalModifyRequest(OCIRequest):
    """
    Request to update a System Voice portal instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        system_voice_portal_id: systemVoicePortalId
        new_system_voice_portal_id: newSystemVoicePortalId
        name: name
        calling_line_id_name: callingLineIdName
        language: language
        time_zone: timeZone
        phone_number: phoneNumber
        public_user_identity: publicUserIdentity
        network_voice_portal_number: networkVoicePortalNumber
        allow_identification_by_phone_number_or_voice_mail_aliases_on_login:
            allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin
        use_voice_portal_wizard: useVoicePortalWizard
        become_default_system_voice_portal: becomeDefaultSystemVoicePortal
        use_voice_portal_default_greeting: useVoicePortalDefaultGreeting
        voice_portal_greeting_file: voicePortalGreetingFile
        use_voice_messaging_default_greeting: useVoiceMessagingDefaultGreeting
        voice_messaging_greeting_file: voiceMessagingGreetingFile
    """

    _ELEMENTS = (
        E("system_voice_portal_id", "systemVoicePortalId", str, is_required=True),
        E("new_system_voice_portal_id", "newSystemVoicePortalId", str),
        E("name", "name", str),
        E("calling_line_id_name", "callingLineIdName", str),
        E("language", "language", str),
        E("time_zone", "timeZone", str),
        E("phone_number", "phoneNumber", str),
        E("public_user_identity", "publicUserIdentity", str),
        E("network_voice_portal_number", "networkVoicePortalNumber", str),
        E(
            "allow_identification_by_phone_number_or_voice_mail_aliases_on_login",
            "allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin", bool,
        ),
        E("use_voice_portal_wizard", "useVoicePortalWizard", bool),
        E("become_default_system_voice_portal", "becomeDefaultSystemVoicePortal", bool),
        E("use_voice_portal_default_greeting", "useVoicePortalDefaultGreeting", bool),
        E(
            "voice_portal_greeting_file", "voicePortalGreetingFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E("use_voice_messaging_default_greeting", "useVoiceMessagingDefaultGreeting", bool),
        E(
            "voice_messaging_greeting_file", "voiceMessagingGreetingFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
    )

    system_voice_portal_id: str = Field(type=str, required=True, mutable=False)
    new_system_voice_portal_id: str = Field(type=str, required=False, mutable=False)
    name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_name: str = Field(type=str, required=False, mutable=False)
    language: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    public_user_identity: str = Field(type=str, required=False, mutable=False)
    network_voice_portal_number: str = Field(type=str, required=False, mutable=False)
    allow_identification_by_phone_number_or_voice_mail_aliases_on_login: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_voice_portal_wizard: bool = Field(type=bool, required=False, mutable=False)
    become_default_system_voice_portal: bool = Field(type=bool, required=False, mutable=False)
    use_voice_portal_default_greeting: bool = Field(type=bool, required=False, mutable=False)
    voice_portal_greeting_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    use_voice_messaging_default_greeting: bool = Field(
        type=bool, required=False, mutable=False,
    )
    voice_messaging_greeting_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )


class SystemThirdPartyVoiceMailSupportGetDnListRequest(OCIRequest):
    """
    Request to get a list of ThirdPartyVoiceMailSupport User DN's defined in the system.

    The response is either a ``SystemThirdPartyVoiceMailSupportGetDnListResponse()`` or an
    ``ErrorResponse()``. The search can be done using multiple criterion.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_system_service_dn: searchCriteriaSystemServiceDn
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_system_service_dn", "searchCriteriaSystemServiceDn",
            OCI.SearchCriteriaSystemServiceDn, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_system_service_dn: "List[OCI.SearchCriteriaSystemServiceDn]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemTimeScheduleAddRequest(OCIRequest):
    """
    Add a system time schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        time_schedule_name: timeScheduleName
        time_interval01: timeInterval01
        time_interval02: timeInterval02
        time_interval03: timeInterval03
        time_interval04: timeInterval04
        time_interval05: timeInterval05
        time_interval06: timeInterval06
        time_interval07: timeInterval07
        time_interval08: timeInterval08
        time_interval09: timeInterval09
        time_interval10: timeInterval10
        time_interval11: timeInterval11
        time_interval12: timeInterval12
        time_interval13: timeInterval13
        time_interval14: timeInterval14
        time_interval15: timeInterval15
        time_interval16: timeInterval16
        time_interval17: timeInterval17
        time_interval18: timeInterval18
        time_interval19: timeInterval19
        time_interval20: timeInterval20
    """

    _ELEMENTS = (
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
        E("time_interval01", "timeInterval01", OCI.TimeInterval, is_complex=True),
        E("time_interval02", "timeInterval02", OCI.TimeInterval, is_complex=True),
        E("time_interval03", "timeInterval03", OCI.TimeInterval, is_complex=True),
        E("time_interval04", "timeInterval04", OCI.TimeInterval, is_complex=True),
        E("time_interval05", "timeInterval05", OCI.TimeInterval, is_complex=True),
        E("time_interval06", "timeInterval06", OCI.TimeInterval, is_complex=True),
        E("time_interval07", "timeInterval07", OCI.TimeInterval, is_complex=True),
        E("time_interval08", "timeInterval08", OCI.TimeInterval, is_complex=True),
        E("time_interval09", "timeInterval09", OCI.TimeInterval, is_complex=True),
        E("time_interval10", "timeInterval10", OCI.TimeInterval, is_complex=True),
        E("time_interval11", "timeInterval11", OCI.TimeInterval, is_complex=True),
        E("time_interval12", "timeInterval12", OCI.TimeInterval, is_complex=True),
        E("time_interval13", "timeInterval13", OCI.TimeInterval, is_complex=True),
        E("time_interval14", "timeInterval14", OCI.TimeInterval, is_complex=True),
        E("time_interval15", "timeInterval15", OCI.TimeInterval, is_complex=True),
        E("time_interval16", "timeInterval16", OCI.TimeInterval, is_complex=True),
        E("time_interval17", "timeInterval17", OCI.TimeInterval, is_complex=True),
        E("time_interval18", "timeInterval18", OCI.TimeInterval, is_complex=True),
        E("time_interval19", "timeInterval19", OCI.TimeInterval, is_complex=True),
        E("time_interval20", "timeInterval20", OCI.TimeInterval, is_complex=True),
    )

    time_schedule_name: str = Field(type=str, required=True, mutable=False)
    time_interval01: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval02: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval03: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval04: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval05: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval06: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval07: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval08: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval09: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval10: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval11: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval12: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval13: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval14: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval15: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval16: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval17: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval18: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval19: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval20: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )


class SystemTimeScheduleModifyRequest(OCIRequest):
    """
    Modify a specified system time schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        time_schedule_name: timeScheduleName
        new_time_schedule_name: newTimeScheduleName
        time_interval01: timeInterval01
        time_interval02: timeInterval02
        time_interval03: timeInterval03
        time_interval04: timeInterval04
        time_interval05: timeInterval05
        time_interval06: timeInterval06
        time_interval07: timeInterval07
        time_interval08: timeInterval08
        time_interval09: timeInterval09
        time_interval10: timeInterval10
        time_interval11: timeInterval11
        time_interval12: timeInterval12
        time_interval13: timeInterval13
        time_interval14: timeInterval14
        time_interval15: timeInterval15
        time_interval16: timeInterval16
        time_interval17: timeInterval17
        time_interval18: timeInterval18
        time_interval19: timeInterval19
        time_interval20: timeInterval20
    """

    _ELEMENTS = (
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
        E("new_time_schedule_name", "newTimeScheduleName", str),
        E("time_interval01", "timeInterval01", OCI.TimeInterval, is_complex=True),
        E("time_interval02", "timeInterval02", OCI.TimeInterval, is_complex=True),
        E("time_interval03", "timeInterval03", OCI.TimeInterval, is_complex=True),
        E("time_interval04", "timeInterval04", OCI.TimeInterval, is_complex=True),
        E("time_interval05", "timeInterval05", OCI.TimeInterval, is_complex=True),
        E("time_interval06", "timeInterval06", OCI.TimeInterval, is_complex=True),
        E("time_interval07", "timeInterval07", OCI.TimeInterval, is_complex=True),
        E("time_interval08", "timeInterval08", OCI.TimeInterval, is_complex=True),
        E("time_interval09", "timeInterval09", OCI.TimeInterval, is_complex=True),
        E("time_interval10", "timeInterval10", OCI.TimeInterval, is_complex=True),
        E("time_interval11", "timeInterval11", OCI.TimeInterval, is_complex=True),
        E("time_interval12", "timeInterval12", OCI.TimeInterval, is_complex=True),
        E("time_interval13", "timeInterval13", OCI.TimeInterval, is_complex=True),
        E("time_interval14", "timeInterval14", OCI.TimeInterval, is_complex=True),
        E("time_interval15", "timeInterval15", OCI.TimeInterval, is_complex=True),
        E("time_interval16", "timeInterval16", OCI.TimeInterval, is_complex=True),
        E("time_interval17", "timeInterval17", OCI.TimeInterval, is_complex=True),
        E("time_interval18", "timeInterval18", OCI.TimeInterval, is_complex=True),
        E("time_interval19", "timeInterval19", OCI.TimeInterval, is_complex=True),
        E("time_interval20", "timeInterval20", OCI.TimeInterval, is_complex=True),
    )

    time_schedule_name: str = Field(type=str, required=True, mutable=False)
    new_time_schedule_name: str = Field(type=str, required=False, mutable=False)
    time_interval01: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval02: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval03: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval04: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval05: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval06: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval07: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval08: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval09: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval10: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval11: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval12: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval13: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval14: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval15: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval16: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval17: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval18: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval19: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval20: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )


class SystemTwoStageDialingGetDnListRequest(OCIRequest):
    """
    Request to get a list of Two Stage Dialing dns defined in the system.

    The response is either a ``SystemTwoStageDialingGetDnListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_system_service_dn: searchCriteriaSystemServiceDn
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_system_service_dn", "searchCriteriaSystemServiceDn",
            OCI.SearchCriteriaSystemServiceDn, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_system_service_dn: "List[OCI.SearchCriteriaSystemServiceDn]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemZoneAddRequest(OCIRequest):
    """
    Add a Zone and optional Net Addresses and Physical Locations.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        zone_name: zoneName
        net_address: netAddress
        net_address_range: netAddressRange
        location_based_physical_location: locationBasedPhysicalLocation
        calling_zone_physical_location: callingZonePhysicalLocation
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("net_address", "netAddress", str, is_array=True),
        E(
            "net_address_range", "netAddressRange", OCI.IPAddressRange, is_complex=True,
            is_array=True,
        ),
        E(
            "location_based_physical_location", "locationBasedPhysicalLocation", str,
            is_array=True,
        ),
        E("calling_zone_physical_location", "callingZonePhysicalLocation", str),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    net_address: "List[str]" = Field(type=list, required=False, mutable=False)
    net_address_range: "List[OCI.IPAddressRange]" = Field(
        type=list, required=False, mutable=False,
    )
    location_based_physical_location: "List[str]" = Field(
        type=list, required=False, mutable=False,
    )
    calling_zone_physical_location: str = Field(type=str, required=False, mutable=False)


class SystemZoneCallingRestrictionsNetAddressAddListRequest(OCIRequest):
    """
    Adds a list of IP addresses to a zone The response is ``SuccessResponse()`` or an
    ``ErrorResponse()``.

    Replaced by: ``SystemZoneNetAddressAddListRequest()``

    Attributes:
        zone_name: zoneName
        net_address: netAddress
        net_address_range: netAddressRange
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("net_address", "netAddress", str, is_array=True),
        E(
            "net_address_range", "netAddressRange", OCI.IPAddressRange, is_complex=True,
            is_array=True,
        ),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    net_address: "List[str]" = Field(type=list, required=False, mutable=False)
    net_address_range: "List[OCI.IPAddressRange]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemZoneCallingRestrictionsNetAddressDeleteListRequest(OCIRequest):
    """
    Deletes a list of IP addresses from a zone The response is ``SuccessResponse()`` or an
    ``ErrorResponse()``.

    Replaced by: ``SystemZoneNetAddressDeleteListRequest()``

    Attributes:
        zone_name: zoneName
        net_address: netAddress
        net_address_range: netAddressRange
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("net_address", "netAddress", str, is_array=True),
        E(
            "net_address_range", "netAddressRange", OCI.IPAddressRange, is_complex=True,
            is_array=True,
        ),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    net_address: "List[str]" = Field(type=list, required=False, mutable=False)
    net_address_range: "List[OCI.IPAddressRange]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemZoneCallingRestrictionsNetAddressGetListRequest(OCIRequest):
    """
    Gets a list of IP Addresses and/or Ranges assigned to a zone Response is
    ``SystemZoneCallingRestrictionsNetAddressGetListResponse()``.

    Replaced by: ``SystemZoneNetAddressGetListRequest()``

    Attributes:
        zone_name: zoneName
        response_size_limit: responseSizeLimit
        search_criteria_zone_ip_address: searchCriteriaZoneIPAddress
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_zone_ip_address", "searchCriteriaZoneIPAddress",
            OCI.SearchCriteriaZoneIPAddress, is_complex=True, is_array=True,
        ),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_zone_ip_address: "List[OCI.SearchCriteriaZoneIPAddress]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemZoneLocationBasedPhysicalLocationGetListRequest(OCIRequest):
    """
    Gets a list of physical locations assigned to a zone.

    Response is ``SystemZoneLocationBasedPhysicalLocationGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        zone_name: zoneName
        response_size_limit: responseSizeLimit
        search_criteria_physical_location: searchCriteriaPhysicalLocation
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_physical_location", "searchCriteriaPhysicalLocation",
            OCI.SearchCriteriaPhysicalLocation, is_complex=True, is_array=True,
        ),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_physical_location: "List[OCI.SearchCriteriaPhysicalLocation]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemZoneNetAddressAddListRequest(OCIRequest):
    """
    Adds a list of IP addresses to a zone The response is ``SuccessResponse()`` or an
    ``ErrorResponse()``.


    Attributes:
        zone_name: zoneName
        net_address: netAddress
        net_address_range: netAddressRange
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("net_address", "netAddress", str, is_array=True),
        E(
            "net_address_range", "netAddressRange", OCI.IPAddressRange, is_complex=True,
            is_array=True,
        ),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    net_address: "List[str]" = Field(type=list, required=False, mutable=False)
    net_address_range: "List[OCI.IPAddressRange]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemZoneNetAddressDeleteListRequest(OCIRequest):
    """
    Deletes a list of IP addresses from a zone The response is ``SuccessResponse()`` or an
    ``ErrorResponse()``.


    Attributes:
        zone_name: zoneName
        net_address: netAddress
        net_address_range: netAddressRange
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("net_address", "netAddress", str, is_array=True),
        E(
            "net_address_range", "netAddressRange", OCI.IPAddressRange, is_complex=True,
            is_array=True,
        ),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    net_address: "List[str]" = Field(type=list, required=False, mutable=False)
    net_address_range: "List[OCI.IPAddressRange]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemZoneNetAddressGetListRequest(OCIRequest):
    """
    Gets a list of IP Addresses and/or Ranges assigned to a zone.

    Response is ``SystemZoneNetAddressGetListResponse()`` or an ``ErrorResponse()``.

    Attributes:
        zone_name: zoneName
        response_size_limit: responseSizeLimit
        search_criteria_zone_ip_address: searchCriteriaZoneIPAddress
    """

    _ELEMENTS = (
        E("zone_name", "zoneName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_zone_ip_address", "searchCriteriaZoneIPAddress",
            OCI.SearchCriteriaZoneIPAddress, is_complex=True, is_array=True,
        ),
    )

    zone_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_zone_ip_address: "List[OCI.SearchCriteriaZoneIPAddress]" = Field(
        type=list, required=False, mutable=False,
    )


class UserAccessDeviceFileGetListRequest(OCIRequest):
    """
    Request to get the list of Device Management user modifiable files.

    The response is either ``UserAccessDeviceFileGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device: accessDevice
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device", "accessDevice", OCI.AccessDevice, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=True, mutable=False,
    )


class UserAccessDeviceFileGetRequest(OCIRequest):
    """
    Request to get a user modifiable file.

    The response is either ``UserAccessDeviceFileGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device: accessDevice
        file_format: fileFormat
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device", "accessDevice", OCI.AccessDevice, is_complex=True,
            is_required=True,
        ),
        E("file_format", "fileFormat", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=True, mutable=False,
    )
    file_format: str = Field(type=str, required=True, mutable=False)


class UserAccessDeviceFileModifyRequest(OCIRequest):
    """
    Request to modify a user modifiable access device file.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device: accessDevice
        file_format: fileFormat
        upload_file: uploadFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device", "accessDevice", OCI.AccessDevice, is_complex=True,
            is_required=True,
        ),
        E("file_format", "fileFormat", str, is_required=True),
        E("upload_file", "uploadFile", OCI.FileResource, is_complex=True, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=True, mutable=False,
    )
    file_format: str = Field(type=str, required=True, mutable=False)
    upload_file: "OCI.FileResource" = Field(
        type=OCI.FileResource, required=True, mutable=False,
    )


class UserAccessDeviceResetRequest(OCIRequest):
    """
    Reset a specific user SIP device that supports the reset operation.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device: accessDevice
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device", "accessDevice", OCI.AccessDevice, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=True, mutable=False,
    )


class UserAccessDeviceTagsGetRequest(OCIRequest):
    """
    Request to get all the device tag names and values for a specific device.

    The resolved tags are returned only if the device is the main device for this user.

    The response is either a ``UserAccessDeviceTagsGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device: accessDevice
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device", "accessDevice", OCI.AccessDevice, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=True, mutable=False,
    )


class UserAlternateNumbersModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Alternate Numbers.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        distinctive_ring: distinctiveRing
        alternate_entry01: alternateEntry01
        alternate_entry02: alternateEntry02
        alternate_entry03: alternateEntry03
        alternate_entry04: alternateEntry04
        alternate_entry05: alternateEntry05
        alternate_entry06: alternateEntry06
        alternate_entry07: alternateEntry07
        alternate_entry08: alternateEntry08
        alternate_entry09: alternateEntry09
        alternate_entry10: alternateEntry10
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("distinctive_ring", "distinctiveRing", bool),
        E(
            "alternate_entry01", "alternateEntry01", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
        E(
            "alternate_entry02", "alternateEntry02", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
        E(
            "alternate_entry03", "alternateEntry03", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
        E(
            "alternate_entry04", "alternateEntry04", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
        E(
            "alternate_entry05", "alternateEntry05", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
        E(
            "alternate_entry06", "alternateEntry06", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
        E(
            "alternate_entry07", "alternateEntry07", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
        E(
            "alternate_entry08", "alternateEntry08", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
        E(
            "alternate_entry09", "alternateEntry09", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
        E(
            "alternate_entry10", "alternateEntry10", OCI.AlternateNumberEntry21,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    distinctive_ring: bool = Field(type=bool, required=False, mutable=False)
    alternate_entry01: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )
    alternate_entry02: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )
    alternate_entry03: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )
    alternate_entry04: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )
    alternate_entry05: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )
    alternate_entry06: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )
    alternate_entry07: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )
    alternate_entry08: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )
    alternate_entry09: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )
    alternate_entry10: "OCI.AlternateNumberEntry21" = Field(
        type=OCI.AlternateNumberEntry21, required=False, mutable=False,
    )


class UserAnnouncementFileAddRequest(OCIRequest):
    """
    Add an announcement to the user announcement repository The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        user_id: userId
        announcement_file_name: announcementFileName
        announcement_file: announcementFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("announcement_file_name", "announcementFileName", str, is_required=True),
        E(
            "announcement_file", "announcementFile", OCI.LabeledMediaFileResource,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_name: str = Field(type=str, required=True, mutable=False)
    announcement_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=True, mutable=False,
    )


class UserAnnouncementFileDeleteListRequest(OCIRequest):
    """
    Delete one or more announcements from the user announcement repository The response is
    either a ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        user_id: userId
        announcement_file_key: announcementFileKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "announcement_file_key", "announcementFileKey", OCI.AnnouncementFileKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_key: "OCI.AnnouncementFileKey" = Field(
        type=OCI.AnnouncementFileKey, required=True, mutable=False,
    )


class UserAnnouncementFileGetListRequest(OCIRequest):
    """
    Get the list of announcement names with associated media type and filesize for a User
    and given Announcement Repository Type The response is either a
    ``UserAnnouncementFileGetListResponse()`` or an ``ErrorResponse()``.


    Attributes:
        user_id: userId
        announcement_file_type: announcementFileType
        include_announcement_table: includeAnnouncementTable
        response_size_limit: responseSizeLimit
        search_criteria_announcement_file_name: searchCriteriaAnnouncementFileName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("announcement_file_type", "announcementFileType", str),
        E("include_announcement_table", "includeAnnouncementTable", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_announcement_file_name",
            "searchCriteriaAnnouncementFileName", OCI.SearchCriteriaAnnouncementFileName,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_type: str = Field(type=str, required=False, mutable=False)
    include_announcement_table: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_announcement_file_name: "List[OCI.SearchCriteriaAnnouncementFileName]" = Field(
        type=list, required=False, mutable=False,
    )


class UserAnnouncementFileGetRequest(OCIRequest):
    """
    Request to get the announcement repository file information.

    The response is either ``UserAnnouncementFileGetResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        announcement_file_key: announcementFileKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "announcement_file_key", "announcementFileKey", OCI.AnnouncementFileKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_key: "OCI.AnnouncementFileKey" = Field(
        type=OCI.AnnouncementFileKey, required=True, mutable=False,
    )


class UserAnnouncementFileModifyRequest(OCIRequest):
    """
    This command is used to change the name of the file or upload a new announcement file
    for an existing announcement in the user repository.

    When modifying the file type the command will fail if the media type of the new file
    changes the announcement from audio to video (or vice versa).

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        announcement_file_key: announcementFileKey
        new_announcement_file_name: newAnnouncementFileName
        announcement_file: announcementFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "announcement_file_key", "announcementFileKey", OCI.AnnouncementFileKey,
            is_complex=True, is_required=True,
        ),
        E("new_announcement_file_name", "newAnnouncementFileName", str),
        E(
            "announcement_file", "announcementFile", OCI.LabeledMediaFileResource,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    announcement_file_key: "OCI.AnnouncementFileKey" = Field(
        type=OCI.AnnouncementFileKey, required=True, mutable=False,
    )
    new_announcement_file_name: str = Field(type=str, required=False, mutable=False)
    announcement_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )


class UserAttendantConsoleModifyRequest(OCIRequest):
    """
    Modify user's attendant console settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        launch_on_login: launchOnLogin
        allow_user_config_call_details: allowUserConfigCallDetails
        allow_user_view_call_details: allowUserViewCallDetails
        display_column_list: displayColumnList
        monitored_user_id_list: monitoredUserIdList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("launch_on_login", "launchOnLogin", bool),
        E("allow_user_config_call_details", "allowUserConfigCallDetails", bool),
        E("allow_user_view_call_details", "allowUserViewCallDetails", bool),
        E(
            "display_column_list", "displayColumnList",
            OCI.AttendantConsoleReplacementDisplayColumnList, is_complex=True,
        ),
        E(
            "monitored_user_id_list", "monitoredUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    launch_on_login: bool = Field(type=bool, required=False, mutable=False)
    allow_user_config_call_details: bool = Field(type=bool, required=False, mutable=False)
    allow_user_view_call_details: bool = Field(type=bool, required=False, mutable=False)
    display_column_list: "OCI.AttendantConsoleReplacementDisplayColumnList" = Field(
        type=OCI.AttendantConsoleReplacementDisplayColumnList, required=False,
        mutable=False,
    )
    monitored_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserBroadWorksAnywhereAddSelectiveCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's BroadWorks Anywhere phone number.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        criteria_name: criteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )


class UserBroadWorksAnywhereAddSelectiveCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's BroadWorks Anywhere phone number.

    For the callToNumber, the extension element is not used and the number element is only
    used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        call_to_number: callToNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)


class UserBroadWorksAnywhereModifyPhoneNumberRequest(OCIRequest):
    """
    Modify a BroadWorks Anywhere phone number The response is either a
    ``SuccessResponse()`` or an ``ErrorResponse()``.


    Attributes:
        user_id: userId
        phone_number: phoneNumber
        new_phone_number: newPhoneNumber
        description: description
        is_active: isActive
        outbound_alternate_number: outboundAlternateNumber
        broadworks_call_control: broadworksCallControl
        use_diversion_inhibitor: useDiversionInhibitor
        answer_confirmation_required: answerConfirmationRequired
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("new_phone_number", "newPhoneNumber", str),
        E("description", "description", str),
        E("is_active", "isActive", bool),
        E("outbound_alternate_number", "outboundAlternateNumber", str),
        E("broadworks_call_control", "broadworksCallControl", bool),
        E("use_diversion_inhibitor", "useDiversionInhibitor", bool),
        E("answer_confirmation_required", "answerConfirmationRequired", bool),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    new_phone_number: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    outbound_alternate_number: str = Field(type=str, required=False, mutable=False)
    broadworks_call_control: bool = Field(type=bool, required=False, mutable=False)
    use_diversion_inhibitor: bool = Field(type=bool, required=False, mutable=False)
    answer_confirmation_required: bool = Field(type=bool, required=False, mutable=False)
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserBroadWorksMobilityModifyRequest21(OCIRequest):
    """
    Modify the user's BroadWorks Mobility service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    isActive, useMobileIdentityCallAnchoring, and preventCallsToOwnMobiles parameters can
    be modified by users with Group Authorization Level and above.  The mobileIdentity,
    profileIdentityDevicesToRing, rofileIdentityIncludeSharedCallAppearance,
    profileIdentityIncludeBroadworksAnywhere mobileIdentity and
    profileIdentityMobilityNumbersAlerted parameters can be modified by users with User
    Authorization Level and above when the BroadWorks Mobility service is turned on.

    Attributes:
        user_id: userId
        is_active: isActive
        use_mobile_identity_call_anchoring: useMobileIdentityCallAnchoring
        prevent_calls_to_own_mobiles: preventCallsToOwnMobiles
        mobile_identity: mobileIdentity
        profile_identity_devices_to_ring: profileIdentityDevicesToRing
        profile_identity_include_shared_call_appearance:
            profileIdentityIncludeSharedCallAppearance
        profile_identity_include_broadworks_anywhere:
            profileIdentityIncludeBroadworksAnywhere
        profile_identity_include_executive_assistant:
            profileIdentityIncludeExecutiveAssistant
        profile_identity_mobility_numbers_alerted: profileIdentityMobilityNumbersAlerted
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("use_mobile_identity_call_anchoring", "useMobileIdentityCallAnchoring", bool),
        E("prevent_calls_to_own_mobiles", "preventCallsToOwnMobiles", bool),
        E(
            "mobile_identity", "mobileIdentity",
            OCI.BroadWorksMobilityUserMobileIdentityModifyEntry, is_complex=True,
        ),
        E("profile_identity_devices_to_ring", "profileIdentityDevicesToRing", str),
        E(
            "profile_identity_include_shared_call_appearance",
            "profileIdentityIncludeSharedCallAppearance", bool,
        ),
        E(
            "profile_identity_include_broadworks_anywhere",
            "profileIdentityIncludeBroadworksAnywhere", bool,
        ),
        E(
            "profile_identity_include_executive_assistant",
            "profileIdentityIncludeExecutiveAssistant", bool,
        ),
        E(
            "profile_identity_mobility_numbers_alerted",
            "profileIdentityMobilityNumbersAlerted",
            OCI.BroadWorksMobilityAlertingMobileNumberReplacementList, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    use_mobile_identity_call_anchoring: bool = Field(type=bool, required=False, mutable=False)
    prevent_calls_to_own_mobiles: bool = Field(type=bool, required=False, mutable=False)
    mobile_identity: "OCI.BroadWorksMobilityUserMobileIdentityModifyEntry" = Field(
        type=OCI.BroadWorksMobilityUserMobileIdentityModifyEntry, required=False,
        mutable=False,
    )
    profile_identity_devices_to_ring: str = Field(type=str, required=False, mutable=False)
    profile_identity_include_shared_call_appearance: bool = Field(
        type=bool, required=False, mutable=False,
    )
    profile_identity_include_broadworks_anywhere: bool = Field(
        type=bool, required=False, mutable=False,
    )
    profile_identity_include_executive_assistant: bool = Field(
        type=bool, required=False, mutable=False,
    )
    profile_identity_mobility_numbers_alerted: "OCI.BroadWorksMobilityAlertingMobileNumberReplacementList" = Field(
        type=OCI.BroadWorksMobilityAlertingMobileNumberReplacementList, required=False,
        mutable=False,
    )


class UserBroadWorksReceptionistEnterpriseModifyRequest(OCIRequest):
    """
    Replace the BroadWorks Receptionist - Enterprise monitored user list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        monitored_user_id_list: monitoredUserIdList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "monitored_user_id_list", "monitoredUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    monitored_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserBroadWorksReceptionistOfficeModifyRequest(OCIRequest):
    """
    Replace the Receptionist Office monitored user list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        monitored_user_id_list: monitoredUserIdList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "monitored_user_id_list", "monitoredUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    monitored_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserBroadWorksReceptionistSmallBusinessModifyRequest(OCIRequest):
    """
    Replace the Receptionist Small Business monitored user list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        monitored_user_id_list: monitoredUserIdList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "monitored_user_id_list", "monitoredUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    monitored_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserBusyLampFieldModifyRequest(OCIRequest):
    """
    Modify the settings for the busy lamp field service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        list_uri: listURI
        monitored_user_id_list: monitoredUserIdList
        enable_call_park_notification: enableCallParkNotification
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("list_uri", "listURI", str),
        E(
            "monitored_user_id_list", "monitoredUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
        E("enable_call_park_notification", "enableCallParkNotification", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    list_uri: str = Field(type=str, required=False, mutable=False)
    monitored_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    enable_call_park_notification: bool = Field(type=bool, required=False, mutable=False)


class UserCallCenterEnhancedReportingReportTemplateParamInfoGetRequest(OCIRequest):
    """
    Request to get the input parameter info for a call center report template.

    The response is either a
    ``UserCallCenterEnhancedReportingReportTemplateParamInfoGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        report_template: reportTemplate
    """

    _ELEMENTS = (
        E(
            "report_template", "reportTemplate", OCI.CallCenterReportTemplateKey,
            is_complex=True, is_required=True,
        ),
    )

    report_template: "OCI.CallCenterReportTemplateKey" = Field(
        type=OCI.CallCenterReportTemplateKey, required=True, mutable=False,
    )


class UserCallCenterModifyAvailabilityListRequest(OCIRequest):
    """
    Request for an agent to login or logout of one or more Call Centers.

    Contains a list specifing the desired login status of one or more call centers.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserCallCenterModifyRequest()``

    Attributes:
        user_id: userId
        call_center_availability: callCenterAvailability
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "call_center_availability", "callCenterAvailability",
            OCI.CallCenterAgentAvailability, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_center_availability: "List[OCI.CallCenterAgentAvailability]" = Field(
        type=list, required=False, mutable=False,
    )


class UserCallCenterModifyCallCenterListRequest(OCIRequest):
    """
    Request to modify the call center list for an agent.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        agent_user_id: agentUserId
        service_user_id_list: serviceUserIdList
    """

    _ELEMENTS = (
        E("agent_user_id", "agentUserId", str, is_required=True),
        E(
            "service_user_id_list", "serviceUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    agent_user_id: str = Field(type=str, required=True, mutable=False)
    service_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserCallCenterModifyRequest(OCIRequest):
    """
    Modifies the agents call center settings and the availability for an agent in one or
    more Call Centers.

    Contains a list specifying the desired availability status of one or more call
    centers.  A default unavailable code will be used if the parameter
    agentUnavailableCode is not active, included or is invalid.  Changing the
    agentACDState from unavailable to any other state will automatically clear the
    unavailable code.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``UserCallCenterModifyRequest17sp4()``.

    Attributes:
        user_id: userId
        agent_acd_state: agentACDState
        agent_unavailable_code: agentUnavailableCode
        use_default_guard_timer: useDefaultGuardTimer
        enable_guard_timer: enableGuardTimer
        guard_timer_seconds: guardTimerSeconds
        use_system_default_unavailable_settings: useSystemDefaultUnavailableSettings
        force_agent_unavailable_on_dnd_activation: forceAgentUnavailableOnDNDActivation
        force_unavailable_on_personal_calls: forceUnavailableOnPersonalCalls
        force_agent_unavailable_on_bounced_call_limit:
            forceAgentUnavailableOnBouncedCallLimit
        number_consecutive_bounced_calls_to_force_agent_unavailable:
            numberConsecutiveBouncedCallsToForceAgentUnavailable
        make_outgoing_calls_as_call_center: makeOutgoingCallsAsCallCenter
        outgoing_call_dnis: outgoingCallDNIS
        call_center_availability: callCenterAvailability
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("agent_acd_state", "agentACDState", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E("use_default_guard_timer", "useDefaultGuardTimer", bool),
        E("enable_guard_timer", "enableGuardTimer", bool),
        E("guard_timer_seconds", "guardTimerSeconds", int),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings", bool,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation", bool,
        ),
        E("force_unavailable_on_personal_calls", "forceUnavailableOnPersonalCalls", bool),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit", bool,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable", int,
        ),
        E("make_outgoing_calls_as_call_center", "makeOutgoingCallsAsCallCenter", bool),
        E("outgoing_call_dnis", "outgoingCallDNIS", OCI.DNISKey, is_complex=True),
        E(
            "call_center_availability", "callCenterAvailability",
            OCI.CallCenterAgentAvailability, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    agent_acd_state: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    use_default_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    enable_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    guard_timer_seconds: int = Field(type=int, required=False, mutable=False)
    use_system_default_unavailable_settings: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_dnd_activation: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_unavailable_on_personal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_bounced_call_limit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    number_consecutive_bounced_calls_to_force_agent_unavailable: int = Field(
        type=int, required=False, mutable=False,
    )
    make_outgoing_calls_as_call_center: bool = Field(type=bool, required=False, mutable=False)
    outgoing_call_dnis: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=False, mutable=False)
    call_center_availability: "List[OCI.CallCenterAgentAvailability]" = Field(
        type=list, required=False, mutable=False,
    )


class UserCallCenterModifyRequest17sp4(OCIRequest):
    """
    Modifies the agents call center settings and the availability for an agent in one or
    more Call Centers.

    Contains a list specifying the desired availability status of one or more call
    centers.  A default unavailable code will be used if the parameter
    agentUnavailableCode is not active, included or is invalid.  Changing the
    agentACDState from unavailable to any other state will automatically clear the
    unavailable code.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``UserCallCenterModifyRequest19()``.

    Attributes:
        user_id: userId
        agent_acd_state: agentACDState
        agent_threshold_profile_name: agentThresholdProfileName
        agent_unavailable_code: agentUnavailableCode
        use_default_guard_timer: useDefaultGuardTimer
        enable_guard_timer: enableGuardTimer
        guard_timer_seconds: guardTimerSeconds
        use_system_default_unavailable_settings: useSystemDefaultUnavailableSettings
        force_agent_unavailable_on_dnd_activation: forceAgentUnavailableOnDNDActivation
        force_agent_unavailable_on_personal_calls: forceAgentUnavailableOnPersonalCalls
        force_agent_unavailable_on_bounced_call_limit:
            forceAgentUnavailableOnBouncedCallLimit
        number_consecutive_bounced_calls_to_force_agent_unavailable:
            numberConsecutiveBouncedCallsToForceAgentUnavailable
        force_agent_unavailable_on_not_reachable: forceAgentUnavailableOnNotReachable
        make_outgoing_calls_as_call_center: makeOutgoingCallsAsCallCenter
        outgoing_call_dnis: outgoingCallDNIS
        call_center_availability: callCenterAvailability
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("agent_acd_state", "agentACDState", str),
        E("agent_threshold_profile_name", "agentThresholdProfileName", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E("use_default_guard_timer", "useDefaultGuardTimer", bool),
        E("enable_guard_timer", "enableGuardTimer", bool),
        E("guard_timer_seconds", "guardTimerSeconds", int),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings", bool,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation", bool,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls", bool,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit", bool,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable", int,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable", bool,
        ),
        E("make_outgoing_calls_as_call_center", "makeOutgoingCallsAsCallCenter", bool),
        E("outgoing_call_dnis", "outgoingCallDNIS", OCI.DNISKey, is_complex=True),
        E(
            "call_center_availability", "callCenterAvailability",
            OCI.CallCenterAgentAvailability, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    agent_acd_state: str = Field(type=str, required=False, mutable=False)
    agent_threshold_profile_name: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    use_default_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    enable_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    guard_timer_seconds: int = Field(type=int, required=False, mutable=False)
    use_system_default_unavailable_settings: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_dnd_activation: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_personal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_bounced_call_limit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    number_consecutive_bounced_calls_to_force_agent_unavailable: int = Field(
        type=int, required=False, mutable=False,
    )
    force_agent_unavailable_on_not_reachable: bool = Field(
        type=bool, required=False, mutable=False,
    )
    make_outgoing_calls_as_call_center: bool = Field(type=bool, required=False, mutable=False)
    outgoing_call_dnis: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=False, mutable=False)
    call_center_availability: "List[OCI.CallCenterAgentAvailability]" = Field(
        type=list, required=False, mutable=False,
    )


class UserCallCenterModifyRequest19(OCIRequest):
    """
    Modifies the agents call center settings and the availability for an agent in one or
    more Call Centers.

    Contains a list specifying the desired availability status of one or more call
    centers.  A default unavailable code will be used if the parameter
    agentUnavailableCode is not active, included or is invalid.  Changing the
    agentACDState from unavailable to any other state will automatically clear the
    unavailable code.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        agent_acd_state: agentACDState
        agent_threshold_profile_name: agentThresholdProfileName
        agent_unavailable_code: agentUnavailableCode
        use_default_guard_timer: useDefaultGuardTimer
        enable_guard_timer: enableGuardTimer
        guard_timer_seconds: guardTimerSeconds
        use_system_default_unavailable_settings: useSystemDefaultUnavailableSettings
        force_agent_unavailable_on_dnd_activation: forceAgentUnavailableOnDNDActivation
        force_agent_unavailable_on_personal_calls: forceAgentUnavailableOnPersonalCalls
        force_agent_unavailable_on_bounced_call_limit:
            forceAgentUnavailableOnBouncedCallLimit
        number_consecutive_bounced_calls_to_force_agent_unavailable:
            numberConsecutiveBouncedCallsToForceAgentUnavailable
        force_agent_unavailable_on_not_reachable: forceAgentUnavailableOnNotReachable
        make_outgoing_calls_as_call_center: makeOutgoingCallsAsCallCenter
        outgoing_call_dnis: outgoingCallDNIS
        call_center_agent_settings: callCenterAgentSettings
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("agent_acd_state", "agentACDState", str),
        E("agent_threshold_profile_name", "agentThresholdProfileName", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E("use_default_guard_timer", "useDefaultGuardTimer", bool),
        E("enable_guard_timer", "enableGuardTimer", bool),
        E("guard_timer_seconds", "guardTimerSeconds", int),
        E(
            "use_system_default_unavailable_settings",
            "useSystemDefaultUnavailableSettings", bool,
        ),
        E(
            "force_agent_unavailable_on_dnd_activation",
            "forceAgentUnavailableOnDNDActivation", bool,
        ),
        E(
            "force_agent_unavailable_on_personal_calls",
            "forceAgentUnavailableOnPersonalCalls", bool,
        ),
        E(
            "force_agent_unavailable_on_bounced_call_limit",
            "forceAgentUnavailableOnBouncedCallLimit", bool,
        ),
        E(
            "number_consecutive_bounced_calls_to_force_agent_unavailable",
            "numberConsecutiveBouncedCallsToForceAgentUnavailable", int,
        ),
        E(
            "force_agent_unavailable_on_not_reachable",
            "forceAgentUnavailableOnNotReachable", bool,
        ),
        E("make_outgoing_calls_as_call_center", "makeOutgoingCallsAsCallCenter", bool),
        E("outgoing_call_dnis", "outgoingCallDNIS", OCI.DNISKey, is_complex=True),
        E(
            "call_center_agent_settings", "callCenterAgentSettings",
            OCI.CallCenterAgentSettings, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    agent_acd_state: str = Field(type=str, required=False, mutable=False)
    agent_threshold_profile_name: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    use_default_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    enable_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    guard_timer_seconds: int = Field(type=int, required=False, mutable=False)
    use_system_default_unavailable_settings: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_dnd_activation: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_personal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    force_agent_unavailable_on_bounced_call_limit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    number_consecutive_bounced_calls_to_force_agent_unavailable: int = Field(
        type=int, required=False, mutable=False,
    )
    force_agent_unavailable_on_not_reachable: bool = Field(
        type=bool, required=False, mutable=False,
    )
    make_outgoing_calls_as_call_center: bool = Field(type=bool, required=False, mutable=False)
    outgoing_call_dnis: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=False, mutable=False)
    call_center_agent_settings: "List[OCI.CallCenterAgentSettings]" = Field(
        type=list, required=False, mutable=False,
    )


class UserCallCenterModifySupervisedAgentListRequest(OCIRequest):
    """
    Modifies a list of users to be supervised by a supervisor on a call center.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        supervisor_user_id: supervisorUserId
        service_user_id: serviceUserId
        agent_user_id_list: agentUserIdList
    """

    _ELEMENTS = (
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "agent_user_id_list", "agentUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    supervisor_user_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    agent_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserCallForwardingSelectiveAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's call forwarding selective service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        forward_to_number_selection: forwardToNumberSelection
        forward_to_phone_number: forwardToPhoneNumber
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("forward_to_number_selection", "forwardToNumberSelection", str, is_required=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    forward_to_number_selection: str = Field(type=str, required=True, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )


class UserCallForwardingSelectiveAddCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's call forwarding selective service.

    For the callToNumber, the extension element is not used and the number element is only
    used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        forward_to_number_selection: forwardToNumberSelection
        forward_to_phone_number: forwardToPhoneNumber
        from_dn_criteria: fromDnCriteria
        call_to_number: callToNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("forward_to_number_selection", "forwardToNumberSelection", str),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    forward_to_number_selection: str = Field(type=str, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)


class UserCallForwardingSelectiveModifyRequest(OCIRequest):
    """
    Modify the user's call forwarding selective service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        default_forward_to_phone_number: defaultForwardToPhoneNumber
        play_ring_reminder: playRingReminder
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("default_forward_to_phone_number", "defaultForwardToPhoneNumber", str),
        E("play_ring_reminder", "playRingReminder", bool),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    default_forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    play_ring_reminder: bool = Field(type=bool, required=False, mutable=False)
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserCallMeNowAddCriteriaRequest(OCIRequest):
    """
    Add a criterion to the user's call me now service.

    The criterion added is automatically active.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        reject_call: rejectCall
        to_dn_criteria: toDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("reject_call", "rejectCall", bool, is_required=True),
        E(
            "to_dn_criteria", "toDnCriteria", OCI.CallMeNowToDnCriteria, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    reject_call: bool = Field(type=bool, required=True, mutable=False)
    to_dn_criteria: "OCI.CallMeNowToDnCriteria" = Field(
        type=OCI.CallMeNowToDnCriteria, required=True, mutable=False,
    )


class UserCallMeNowModifyRequest(OCIRequest):
    """
    Modify the user's call me now service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        answer_confirmation: answerConfirmation
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("answer_confirmation", "answerConfirmation", str),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    answer_confirmation: str = Field(type=str, required=False, mutable=False)
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserCallNotifyAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's call notify service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )


class UserCallNotifyAddCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's call notify service.

    For the callToNumber, the extension element is not used and the number element is only
    used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        call_to_number: callToNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)


class UserCallNotifyModifyRequest(OCIRequest):
    """
    Modify the user's call notify service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        call_notify_email_address: callNotifyEmailAddress
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("call_notify_email_address", "callNotifyEmailAddress", str),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_notify_email_address: str = Field(type=str, required=False, mutable=False)
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserCollaborateProjectRoomAddRequest(OCIRequest):
    """
    Request to add collaborate project room.

    The response is either a ``UserCollaborateProjectRoomAddResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        room_name: roomName
        attendee_notification: attendeeNotification
        end_collaborate_room_session_on_owner_exit: endCollaborateRoomSessionOnOwnerExit
        owner_required: ownerRequired
        room_schedule: roomSchedule
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("room_name", "roomName", str, is_required=True),
        E("attendee_notification", "attendeeNotification", str, is_required=True),
        E(
            "end_collaborate_room_session_on_owner_exit",
            "endCollaborateRoomSessionOnOwnerExit", bool, is_required=True,
        ),
        E("owner_required", "ownerRequired", bool, is_required=True),
        E(
            "room_schedule", "roomSchedule", OCI.CollaborateRoomSchedule, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    room_name: str = Field(type=str, required=True, mutable=False)
    attendee_notification: str = Field(type=str, required=True, mutable=False)
    end_collaborate_room_session_on_owner_exit: bool = Field(
        type=bool, required=True, mutable=False,
    )
    owner_required: bool = Field(type=bool, required=True, mutable=False)
    room_schedule: "OCI.CollaborateRoomSchedule" = Field(
        type=OCI.CollaborateRoomSchedule, required=True, mutable=False,
    )


class UserCollaborateProjectRoomModifyRequest(OCIRequest):
    """
    Request to modify collaborate room settings for a project room.

    The request fails when modifying collaborate room settings for instant rooms or My
    Room.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        room_id: roomId
        room_name: roomName
        attendee_notification: attendeeNotification
        end_collaborate_room_session_on_owner_exit: endCollaborateRoomSessionOnOwnerExit
        owner_required: ownerRequired
        room_schedule: roomSchedule
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("room_id", "roomId", str, is_required=True),
        E("room_name", "roomName", str),
        E("attendee_notification", "attendeeNotification", str),
        E(
            "end_collaborate_room_session_on_owner_exit",
            "endCollaborateRoomSessionOnOwnerExit", bool,
        ),
        E("owner_required", "ownerRequired", bool),
        E("room_schedule", "roomSchedule", OCI.CollaborateRoomSchedule, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    room_id: str = Field(type=str, required=True, mutable=False)
    room_name: str = Field(type=str, required=False, mutable=False)
    attendee_notification: str = Field(type=str, required=False, mutable=False)
    end_collaborate_room_session_on_owner_exit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    owner_required: bool = Field(type=bool, required=False, mutable=False)
    room_schedule: "OCI.CollaborateRoomSchedule" = Field(
        type=OCI.CollaborateRoomSchedule, required=False, mutable=False,
    )


class UserCommunicationBarringAuthorizationCodeAddListRequest(OCIRequest):
    """
    Add a list of Communication Barring Authorization codes to a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        code: code
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "code", "code", OCI.CommunicationBarringAuthorizationCodeEntry,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    code: "OCI.CommunicationBarringAuthorizationCodeEntry" = Field(
        type=OCI.CommunicationBarringAuthorizationCodeEntry, required=True, mutable=False,
    )


class UserCustomRingbackUserModifyActiveCriteriaListRequest(OCIRequest):
    """
    Modify the user's custom ringback service criteria's active setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserEnhancedCallLogsGetListRequest16(OCIRequest):
    """
    Request user's call logs.

    If the callLogType is not specified, all types of calls logs (placed, received,
    missed) are returned.  It is possible to restrict the number of rows returned using
    responsePagingControl.

    The response is either a ``UserEnhancedCallLogsGetListResponse16()`` or an
    ``ErrorResponse()``. Replaced by ``UserEnhancedCallLogsGetListRequest17sp4()``

    Attributes:
        user_id: userId
        call_log_type: callLogType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=False, mutable=False,
    )


class UserEnterpriseCommonPhoneListGetPagedSortedListRequest(OCIRequest):
    """
    Get an enterprise's common phone list for a user.

    The response is either a ``UserEnterpriseCommonPhoneListGetPagedSortedListResponse()``
    or an ``ErrorResponse()``. The search can be done using multiple criterion.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterion are included
    in the results.  If no search criteria is specified, all results are returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``. The sort can be done on the name or the number in the common
    phone list.

    Attributes:
        user_id: userId
        response_paging_control: responsePagingControl
        sort_by_enterprise_common_phone_list_number: sortByEnterpriseCommonPhoneListNumber
        sort_by_enterprise_common_phone_list_name: sortByEnterpriseCommonPhoneListName
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_enterprise_common_phone_list_name:
            searchCriteriaEnterpriseCommonPhoneListName
        search_criteria_enterprise_common_phone_list_number:
            searchCriteriaEnterpriseCommonPhoneListNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True, is_required=True,
        ),
        E(
            "sort_by_enterprise_common_phone_list_number",
            "sortByEnterpriseCommonPhoneListNumber",
            OCI.SortByEnterpriseCommonPhoneListNumber, is_complex=True,
        ),
        E(
            "sort_by_enterprise_common_phone_list_name",
            "sortByEnterpriseCommonPhoneListName",
            OCI.SortByEnterpriseCommonPhoneListName, is_complex=True,
        ),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_enterprise_common_phone_list_name",
            "searchCriteriaEnterpriseCommonPhoneListName",
            OCI.SearchCriteriaEnterpriseCommonPhoneListName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_enterprise_common_phone_list_number",
            "searchCriteriaEnterpriseCommonPhoneListNumber",
            OCI.SearchCriteriaEnterpriseCommonPhoneListNumber, is_complex=True,
            is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=True, mutable=False,
    )
    sort_by_enterprise_common_phone_list_number: "OCI.SortByEnterpriseCommonPhoneListNumber" = Field(
        type=OCI.SortByEnterpriseCommonPhoneListNumber, required=False, mutable=False,
    )
    sort_by_enterprise_common_phone_list_name: "OCI.SortByEnterpriseCommonPhoneListName" = Field(
        type=OCI.SortByEnterpriseCommonPhoneListName, required=False, mutable=False,
    )
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_enterprise_common_phone_list_name: "List[OCI.SearchCriteriaEnterpriseCommonPhoneListName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_enterprise_common_phone_list_number: "List[OCI.SearchCriteriaEnterpriseCommonPhoneListNumber]" = Field(
        type=list, required=False, mutable=False,
    )


class UserExecutiveAddFilteringSelectiveCriteriaRequest(OCIRequest):
    """
    Add a filtering criteria to an executive user.

    Both executive and the executive assistant can run this command.  For the
    callToNumber, the extension element is not used and the number element is only used
    when the type is BroadWorks Mobility.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        filter: filter
        from_dn_criteria: fromDnCriteria
        call_to_number: callToNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("filter", "filter", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria",
            OCI.ExecutiveCallFilteringCriteriaFromDn, is_complex=True, is_required=True,
        ),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    filter: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.ExecutiveCallFilteringCriteriaFromDn" = Field(
        type=OCI.ExecutiveCallFilteringCriteriaFromDn, required=True, mutable=False,
    )
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)


class UserExecutiveAssistantModifyRequest(OCIRequest):
    """
    Modify the setting for executive assistant.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        enable_divert: enableDivert
        divert_to_phone_number: divertToPhoneNumber
        opt_in_status: optInStatus
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("enable_divert", "enableDivert", bool),
        E("divert_to_phone_number", "divertToPhoneNumber", str),
        E(
            "opt_in_status", "optInStatus", OCI.ExecutiveAssistantOptInStatus,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    enable_divert: bool = Field(type=bool, required=False, mutable=False)
    divert_to_phone_number: str = Field(type=str, required=False, mutable=False)
    opt_in_status: "List[OCI.ExecutiveAssistantOptInStatus]" = Field(
        type=list, required=False, mutable=False,
    )


class UserExecutiveModifyAssistantRequest(OCIRequest):
    """
    Request to modify the assistant setting and the list of assistants assigned to an
    executive user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        allow_opt_in_out: allowOptInOut
        assistant_user_id_list: assistantUserIdList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("allow_opt_in_out", "allowOptInOut", bool),
        E(
            "assistant_user_id_list", "assistantUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    allow_opt_in_out: bool = Field(type=bool, required=False, mutable=False)
    assistant_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserExecutiveModifyFilteringRequest(OCIRequest):
    """
    Modify the filtering setting for an executive user.

    Both executive and the executive assistant can run this command.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        enable_filtering: enableFiltering
        filtering_mode: filteringMode
        simple_filter_type: simpleFilterType
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("enable_filtering", "enableFiltering", bool),
        E("filtering_mode", "filteringMode", str),
        E("simple_filter_type", "simpleFilterType", str),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    enable_filtering: bool = Field(type=bool, required=False, mutable=False)
    filtering_mode: str = Field(type=str, required=False, mutable=False)
    simple_filter_type: str = Field(type=str, required=False, mutable=False)
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserFaxMessagingModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Fax Messaging.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        phone_number: phoneNumber
        extension: extension
        sip_alias_list: sipAliasList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("phone_number", "phoneNumber", str),
        E("extension", "extension", str),
        E("sip_alias_list", "sipAliasList", OCI.ReplacementSIPAliasList, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    sip_alias_list: "OCI.ReplacementSIPAliasList" = Field(
        type=OCI.ReplacementSIPAliasList, required=False, mutable=False,
    )


class UserFeatureAccessCodeModifyListRequest(OCIRequest):
    """
    Enable or disable a list of feature access codes for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        feature_access_code: featureAccessCode
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "feature_access_code", "featureAccessCode",
            OCI.UserFeatureAccessCodeModifyEntry, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    feature_access_code: "List[OCI.UserFeatureAccessCodeModifyEntry]" = Field(
        type=list, required=False, mutable=False,
    )


class UserGetListInSystemRequest(OCIRequest):
    """
    Request the list of users 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 ``UserGetListInSystemResponse()`` or an ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_service_provider: searchCriteriaExactServiceProvider
        search_criteria_exact_user_in_trunk_group: searchCriteriaExactUserInTrunkGroup
        search_criteria_exact_user_network_class_of_service:
            searchCriteriaExactUserNetworkClassOfService
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider", OCI.SearchCriteriaExactServiceProvider,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_user_in_trunk_group",
            "searchCriteriaExactUserInTrunkGroup",
            OCI.SearchCriteriaExactUserInTrunkGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_network_class_of_service",
            "searchCriteriaExactUserNetworkClassOfService",
            OCI.SearchCriteriaExactUserNetworkClassOfService, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_service_provider: "OCI.SearchCriteriaExactServiceProvider" = Field(
        type=OCI.SearchCriteriaExactServiceProvider, required=False, mutable=False,
    )
    search_criteria_exact_user_in_trunk_group: "OCI.SearchCriteriaExactUserInTrunkGroup" = Field(
        type=OCI.SearchCriteriaExactUserInTrunkGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_network_class_of_service: "OCI.SearchCriteriaExactUserNetworkClassOfService" = Field(
        type=OCI.SearchCriteriaExactUserNetworkClassOfService, required=False,
        mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class UserGetServiceInstanceListInSystemRequest(OCIRequest):
    """
    Request the list of Service Instances 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 ``UserGetServiceInstanceListInSystemResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        response_size_limit: responseSizeLimit
        search_criteria_exact_service_type: searchCriteriaExactServiceType
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_service_provider: searchCriteriaExactServiceProvider
    """

    _ELEMENTS = (
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_exact_service_type", "searchCriteriaExactServiceType",
            OCI.SearchCriteriaExactServiceType, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_service_provider",
            "searchCriteriaExactServiceProvider", OCI.SearchCriteriaExactServiceProvider,
            is_complex=True,
        ),
    )

    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_exact_service_type: "OCI.SearchCriteriaExactServiceType" = Field(
        type=OCI.SearchCriteriaExactServiceType, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_service_provider: "OCI.SearchCriteriaExactServiceProvider" = Field(
        type=OCI.SearchCriteriaExactServiceProvider, required=False, mutable=False,
    )


class UserGroupCommonPhoneListGetPagedSortedListRequest(OCIRequest):
    """
    Get a user's group's common phone list.

    The response is either a ``UserGroupCommonPhoneListGetPagedSortedListResponse()`` or
    an ``ErrorResponse()``. The search can be done using multiple criterion.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterion are included
    in the results.  If no search criteria is specified, all results are returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``. The sort can be done on the name or the number in the common
    phone list.

    Attributes:
        user_id: userId
        response_paging_control: responsePagingControl
        sort_by_group_common_phone_list_number: sortByGroupCommonPhoneListNumber
        sort_by_group_common_phone_list_name: sortByGroupCommonPhoneListName
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_group_common_phone_list_name:
            searchCriteriaGroupCommonPhoneListName
        search_criteria_group_common_phone_list_number:
            searchCriteriaGroupCommonPhoneListNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True, is_required=True,
        ),
        E(
            "sort_by_group_common_phone_list_number", "sortByGroupCommonPhoneListNumber",
            OCI.SortByGroupCommonPhoneListNumber, is_complex=True,
        ),
        E(
            "sort_by_group_common_phone_list_name", "sortByGroupCommonPhoneListName",
            OCI.SortByGroupCommonPhoneListName, is_complex=True,
        ),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_group_common_phone_list_name",
            "searchCriteriaGroupCommonPhoneListName",
            OCI.SearchCriteriaGroupCommonPhoneListName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_common_phone_list_number",
            "searchCriteriaGroupCommonPhoneListNumber",
            OCI.SearchCriteriaGroupCommonPhoneListNumber, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=True, mutable=False,
    )
    sort_by_group_common_phone_list_number: "OCI.SortByGroupCommonPhoneListNumber" = Field(
        type=OCI.SortByGroupCommonPhoneListNumber, required=False, mutable=False,
    )
    sort_by_group_common_phone_list_name: "OCI.SortByGroupCommonPhoneListName" = Field(
        type=OCI.SortByGroupCommonPhoneListName, required=False, mutable=False,
    )
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_group_common_phone_list_name: "List[OCI.SearchCriteriaGroupCommonPhoneListName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_common_phone_list_number: "List[OCI.SearchCriteriaGroupCommonPhoneListNumber]" = Field(
        type=list, required=False, mutable=False,
    )


class UserGroupCustomContactDirectoryGetPagedSortedListRequest(OCIRequest):
    """
    Gets a Custom Contact Directory in a group.

    The response is either ``UserGroupCustomContactDirectoryGetPagedSortedListResponse()``
    or ``ErrorResponse()``. The search can be done using multiple criterion.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterion are included
    in the results.  If no search criteria is specified, all results are returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``. The sort can be done on the user last name, first name, or
    department.

    Attributes:
        user_id: userId
        name: name
        response_paging_control: responsePagingControl
        sort_by_user_last_name: sortByUserLastName
        sort_by_user_first_name: sortByUserFirstName
        sort_by_user_department: sortByUserDepartment
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_department_name: searchCriteriaDepartmentName
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True, is_required=True,
        ),
        E(
            "sort_by_user_last_name", "sortByUserLastName", OCI.SortByUserLastName,
            is_complex=True,
        ),
        E(
            "sort_by_user_first_name", "sortByUserFirstName", OCI.SortByUserFirstName,
            is_complex=True,
        ),
        E(
            "sort_by_user_department", "sortByUserDepartment", OCI.SortByUserDepartment,
            is_complex=True,
        ),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_department_name", "searchCriteriaDepartmentName",
            OCI.SearchCriteriaDepartmentName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=True, mutable=False,
    )
    sort_by_user_last_name: "OCI.SortByUserLastName" = Field(
        type=OCI.SortByUserLastName, required=False, mutable=False,
    )
    sort_by_user_first_name: "OCI.SortByUserFirstName" = Field(
        type=OCI.SortByUserFirstName, required=False, mutable=False,
    )
    sort_by_user_department: "OCI.SortByUserDepartment" = Field(
        type=OCI.SortByUserDepartment, required=False, mutable=False,
    )
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_department_name: "List[OCI.SearchCriteriaDepartmentName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserHolidayScheduleAddRequest(OCIRequest):
    """
    Add a holiday schedule to a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        holiday_schedule_name: holidayScheduleName
        holiday01: holiday01
        holiday02: holiday02
        holiday03: holiday03
        holiday04: holiday04
        holiday05: holiday05
        holiday06: holiday06
        holiday07: holiday07
        holiday08: holiday08
        holiday09: holiday09
        holiday10: holiday10
        holiday11: holiday11
        holiday12: holiday12
        holiday13: holiday13
        holiday14: holiday14
        holiday15: holiday15
        holiday16: holiday16
        holiday17: holiday17
        holiday18: holiday18
        holiday19: holiday19
        holiday20: holiday20
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
        E("holiday01", "holiday01", OCI.Holiday, is_complex=True),
        E("holiday02", "holiday02", OCI.Holiday, is_complex=True),
        E("holiday03", "holiday03", OCI.Holiday, is_complex=True),
        E("holiday04", "holiday04", OCI.Holiday, is_complex=True),
        E("holiday05", "holiday05", OCI.Holiday, is_complex=True),
        E("holiday06", "holiday06", OCI.Holiday, is_complex=True),
        E("holiday07", "holiday07", OCI.Holiday, is_complex=True),
        E("holiday08", "holiday08", OCI.Holiday, is_complex=True),
        E("holiday09", "holiday09", OCI.Holiday, is_complex=True),
        E("holiday10", "holiday10", OCI.Holiday, is_complex=True),
        E("holiday11", "holiday11", OCI.Holiday, is_complex=True),
        E("holiday12", "holiday12", OCI.Holiday, is_complex=True),
        E("holiday13", "holiday13", OCI.Holiday, is_complex=True),
        E("holiday14", "holiday14", OCI.Holiday, is_complex=True),
        E("holiday15", "holiday15", OCI.Holiday, is_complex=True),
        E("holiday16", "holiday16", OCI.Holiday, is_complex=True),
        E("holiday17", "holiday17", OCI.Holiday, is_complex=True),
        E("holiday18", "holiday18", OCI.Holiday, is_complex=True),
        E("holiday19", "holiday19", OCI.Holiday, is_complex=True),
        E("holiday20", "holiday20", OCI.Holiday, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)
    holiday01: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday02: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday03: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday04: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday05: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday06: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday07: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday08: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday09: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday10: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday11: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday12: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday13: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday14: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday15: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday16: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday17: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday18: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday19: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday20: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)


class UserHolidayScheduleModifyRequest(OCIRequest):
    """
    Modify a holiday schedule for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        holiday_schedule_name: holidayScheduleName
        new_holiday_schedule_name: newHolidayScheduleName
        holiday01: holiday01
        holiday02: holiday02
        holiday03: holiday03
        holiday04: holiday04
        holiday05: holiday05
        holiday06: holiday06
        holiday07: holiday07
        holiday08: holiday08
        holiday09: holiday09
        holiday10: holiday10
        holiday11: holiday11
        holiday12: holiday12
        holiday13: holiday13
        holiday14: holiday14
        holiday15: holiday15
        holiday16: holiday16
        holiday17: holiday17
        holiday18: holiday18
        holiday19: holiday19
        holiday20: holiday20
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("holiday_schedule_name", "holidayScheduleName", str, is_required=True),
        E("new_holiday_schedule_name", "newHolidayScheduleName", str),
        E("holiday01", "holiday01", OCI.Holiday, is_complex=True),
        E("holiday02", "holiday02", OCI.Holiday, is_complex=True),
        E("holiday03", "holiday03", OCI.Holiday, is_complex=True),
        E("holiday04", "holiday04", OCI.Holiday, is_complex=True),
        E("holiday05", "holiday05", OCI.Holiday, is_complex=True),
        E("holiday06", "holiday06", OCI.Holiday, is_complex=True),
        E("holiday07", "holiday07", OCI.Holiday, is_complex=True),
        E("holiday08", "holiday08", OCI.Holiday, is_complex=True),
        E("holiday09", "holiday09", OCI.Holiday, is_complex=True),
        E("holiday10", "holiday10", OCI.Holiday, is_complex=True),
        E("holiday11", "holiday11", OCI.Holiday, is_complex=True),
        E("holiday12", "holiday12", OCI.Holiday, is_complex=True),
        E("holiday13", "holiday13", OCI.Holiday, is_complex=True),
        E("holiday14", "holiday14", OCI.Holiday, is_complex=True),
        E("holiday15", "holiday15", OCI.Holiday, is_complex=True),
        E("holiday16", "holiday16", OCI.Holiday, is_complex=True),
        E("holiday17", "holiday17", OCI.Holiday, is_complex=True),
        E("holiday18", "holiday18", OCI.Holiday, is_complex=True),
        E("holiday19", "holiday19", OCI.Holiday, is_complex=True),
        E("holiday20", "holiday20", OCI.Holiday, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=True, mutable=False)
    new_holiday_schedule_name: str = Field(type=str, required=False, mutable=False)
    holiday01: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday02: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday03: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday04: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday05: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday06: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday07: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday08: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday09: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday10: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday11: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday12: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday13: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday14: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday15: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday16: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday17: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday18: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday19: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)
    holiday20: "OCI.Holiday" = Field(type=OCI.Holiday, required=False, mutable=False)


class UserInterceptUserModifyRequest(OCIRequest):
    """
    Modify the user's intercept user service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserInterceptUserModifyRequest16()``

    Attributes:
        user_id: userId
        is_active: isActive
        announcement_selection: announcementSelection
        audio_file: audioFile
        video_file: videoFile
        play_new_phone_number: playNewPhoneNumber
        new_phone_number: newPhoneNumber
        transfer_on_zero_to_phone_number: transferOnZeroToPhoneNumber
        transfer_phone_number: transferPhoneNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("announcement_selection", "announcementSelection", str),
        E("audio_file", "audioFile", OCI.LabeledFileResource, is_complex=True),
        E("video_file", "videoFile", OCI.LabeledFileResource, is_complex=True),
        E("play_new_phone_number", "playNewPhoneNumber", bool),
        E("new_phone_number", "newPhoneNumber", str),
        E("transfer_on_zero_to_phone_number", "transferOnZeroToPhoneNumber", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    announcement_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    play_new_phone_number: bool = Field(type=bool, required=False, mutable=False)
    new_phone_number: str = Field(type=str, required=False, mutable=False)
    transfer_on_zero_to_phone_number: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)


class UserInterceptUserModifyRequest16(OCIRequest):
    """
    Modify the user's intercept user service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        announcement_selection: announcementSelection
        audio_file: audioFile
        video_file: videoFile
        play_new_phone_number: playNewPhoneNumber
        new_phone_number: newPhoneNumber
        transfer_on_zero_to_phone_number: transferOnZeroToPhoneNumber
        transfer_phone_number: transferPhoneNumber
        reroute_outbound_calls: rerouteOutboundCalls
        outbound_reroute_phone_number: outboundReroutePhoneNumber
        allow_outbound_local_calls: allowOutboundLocalCalls
        inbound_call_mode: inboundCallMode
        alternate_blocking_announcement: alternateBlockingAnnouncement
        route_to_voice_mail: routeToVoiceMail
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("announcement_selection", "announcementSelection", str),
        E("audio_file", "audioFile", OCI.LabeledMediaFileResource, is_complex=True),
        E("video_file", "videoFile", OCI.LabeledMediaFileResource, is_complex=True),
        E("play_new_phone_number", "playNewPhoneNumber", bool),
        E("new_phone_number", "newPhoneNumber", str),
        E("transfer_on_zero_to_phone_number", "transferOnZeroToPhoneNumber", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("reroute_outbound_calls", "rerouteOutboundCalls", bool),
        E("outbound_reroute_phone_number", "outboundReroutePhoneNumber", str),
        E("allow_outbound_local_calls", "allowOutboundLocalCalls", bool),
        E("inbound_call_mode", "inboundCallMode", str),
        E("alternate_blocking_announcement", "alternateBlockingAnnouncement", bool),
        E("route_to_voice_mail", "routeToVoiceMail", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    announcement_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    video_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    play_new_phone_number: bool = Field(type=bool, required=False, mutable=False)
    new_phone_number: str = Field(type=str, required=False, mutable=False)
    transfer_on_zero_to_phone_number: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    reroute_outbound_calls: bool = Field(type=bool, required=False, mutable=False)
    outbound_reroute_phone_number: str = Field(type=str, required=False, mutable=False)
    allow_outbound_local_calls: bool = Field(type=bool, required=False, mutable=False)
    inbound_call_mode: str = Field(type=str, required=False, mutable=False)
    alternate_blocking_announcement: bool = Field(type=bool, required=False, mutable=False)
    route_to_voice_mail: bool = Field(type=bool, required=False, mutable=False)


class UserLDAPIntegrationGetDirectoryListRequest(OCIRequest):
    """
    Request the LDAP entry lists for a user.

    The response is either a ``UserLDAPIntegrationGetDirectoryListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        search_key: searchKey
        page: page
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("search_key", "searchKey", str),
        E("page", "page", OCI.LDAPPage, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    search_key: str = Field(type=str, required=False, mutable=False)
    page: "OCI.LDAPPage" = Field(type=OCI.LDAPPage, required=False, mutable=False)


class UserMaliciousCallTraceModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Malicious Call Trace.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        trace_type_selection: traceTypeSelection
        trace_for_time_period: traceForTimePeriod
        trace_time_period: traceTimePeriod
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("trace_type_selection", "traceTypeSelection", str),
        E("trace_for_time_period", "traceForTimePeriod", bool),
        E(
            "trace_time_period", "traceTimePeriod", OCI.MaliciousCallTraceTimePeriod,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    trace_type_selection: str = Field(type=str, required=False, mutable=False)
    trace_for_time_period: bool = Field(type=bool, required=False, mutable=False)
    trace_time_period: "OCI.MaliciousCallTraceTimePeriod" = Field(
        type=OCI.MaliciousCallTraceTimePeriod, required=False, mutable=False,
    )


class UserMeetMeConferencingAddConferenceRequest(OCIRequest):
    """
    Add a Meet-Me conference.

    The response is either ``UserMeetMeConferencingAddConferenceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        bridge_id: bridgeId
        title: title
        estimated_participants: estimatedParticipants
        restrict_participants: restrictParticipants
        max_participants: maxParticipants
        account_code: accountCode
        mute_all_attendees_on_entry: muteAllAttendeesOnEntry
        end_conference_on_moderator_exit: endConferenceOnModeratorExit
        moderator_required: moderatorRequired
        attendee_notification: attendeeNotification
        conference_schedule: conferenceSchedule
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("bridge_id", "bridgeId", str, is_required=True),
        E("title", "title", str, is_required=True),
        E("estimated_participants", "estimatedParticipants", int),
        E("restrict_participants", "restrictParticipants", bool),
        E("max_participants", "maxParticipants", int),
        E("account_code", "accountCode", str),
        E("mute_all_attendees_on_entry", "muteAllAttendeesOnEntry", bool, is_required=True),
        E(
            "end_conference_on_moderator_exit", "endConferenceOnModeratorExit", bool,
            is_required=True,
        ),
        E("moderator_required", "moderatorRequired", bool, is_required=True),
        E("attendee_notification", "attendeeNotification", str, is_required=True),
        E(
            "conference_schedule", "conferenceSchedule",
            OCI.MeetMeConferencingConferenceSchedule, is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    bridge_id: str = Field(type=str, required=True, mutable=False)
    title: str = Field(type=str, required=True, mutable=False)
    estimated_participants: int = Field(type=int, required=False, mutable=False)
    restrict_participants: bool = Field(type=bool, required=False, mutable=False)
    max_participants: int = Field(type=int, required=False, mutable=False)
    account_code: str = Field(type=str, required=False, mutable=False)
    mute_all_attendees_on_entry: bool = Field(type=bool, required=True, mutable=False)
    end_conference_on_moderator_exit: bool = Field(type=bool, required=True, mutable=False)
    moderator_required: bool = Field(type=bool, required=True, mutable=False)
    attendee_notification: str = Field(type=str, required=True, mutable=False)
    conference_schedule: "OCI.MeetMeConferencingConferenceSchedule" = Field(
        type=OCI.MeetMeConferencingConferenceSchedule, required=True, mutable=False,
    )


class UserMeetMeConferencingAddConferenceRequest19(OCIRequest):
    """
    Add a Meet-Me conference.

    The response is either ``UserMeetMeConferencingAddConferenceResponse19()`` or
    ``ErrorResponse()``. The startTime element is adjusted to the first occurrence of the
    recurrent schedule that comes at or after the startTime.  The startTime, endTime and
    recurrence information for a conferenceSchedule element will be adjusted to the user
    Host time zone.

    Attributes:
        user_id: userId
        bridge_id: bridgeId
        title: title
        estimated_participants: estimatedParticipants
        restrict_participants: restrictParticipants
        max_participants: maxParticipants
        account_code: accountCode
        mute_all_attendees_on_entry: muteAllAttendeesOnEntry
        end_conference_on_moderator_exit: endConferenceOnModeratorExit
        moderator_required: moderatorRequired
        require_security_pin: requireSecurityPin
        allow_unique_identifier: allowUniqueIdentifier
        attendee_notification: attendeeNotification
        conference_schedule: conferenceSchedule
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("bridge_id", "bridgeId", str, is_required=True),
        E("title", "title", str, is_required=True),
        E("estimated_participants", "estimatedParticipants", int),
        E("restrict_participants", "restrictParticipants", bool),
        E("max_participants", "maxParticipants", int),
        E("account_code", "accountCode", str),
        E("mute_all_attendees_on_entry", "muteAllAttendeesOnEntry", bool, is_required=True),
        E(
            "end_conference_on_moderator_exit", "endConferenceOnModeratorExit", bool,
            is_required=True,
        ),
        E("moderator_required", "moderatorRequired", bool, is_required=True),
        E("require_security_pin", "requireSecurityPin", bool, is_required=True),
        E("allow_unique_identifier", "allowUniqueIdentifier", bool, is_required=True),
        E("attendee_notification", "attendeeNotification", str, is_required=True),
        E(
            "conference_schedule", "conferenceSchedule",
            OCI.MeetMeConferencingConferenceSchedule, is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    bridge_id: str = Field(type=str, required=True, mutable=False)
    title: str = Field(type=str, required=True, mutable=False)
    estimated_participants: int = Field(type=int, required=False, mutable=False)
    restrict_participants: bool = Field(type=bool, required=False, mutable=False)
    max_participants: int = Field(type=int, required=False, mutable=False)
    account_code: str = Field(type=str, required=False, mutable=False)
    mute_all_attendees_on_entry: bool = Field(type=bool, required=True, mutable=False)
    end_conference_on_moderator_exit: bool = Field(type=bool, required=True, mutable=False)
    moderator_required: bool = Field(type=bool, required=True, mutable=False)
    require_security_pin: bool = Field(type=bool, required=True, mutable=False)
    allow_unique_identifier: bool = Field(type=bool, required=True, mutable=False)
    attendee_notification: str = Field(type=str, required=True, mutable=False)
    conference_schedule: "OCI.MeetMeConferencingConferenceSchedule" = Field(
        type=OCI.MeetMeConferencingConferenceSchedule, required=True, mutable=False,
    )


class UserMeetMeConferencingDeleteConferenceListRequest(OCIRequest):
    """
    Request to delete one or more conferences which are owned by the user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )


class UserMeetMeConferencingDeleteConferenceRecordingListRequest(OCIRequest):
    """
    Request to delete one or more conference recordings owned by the user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        recording_key: recordingKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "recording_key", "recordingKey", OCI.MeetMeConferencingConferenceRecordingKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    recording_key: "OCI.MeetMeConferencingConferenceRecordingKey" = Field(
        type=OCI.MeetMeConferencingConferenceRecordingKey, required=True, mutable=False,
    )


class UserMeetMeConferencingGetConferenceDelegateListRequest(OCIRequest):
    """
    Get the conference delegates for this conference.

    The response is either ``UserMeetMeConferencingGetConferenceDelegateListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )


class UserMeetMeConferencingGetConferenceGreetingRequest(OCIRequest):
    """
    Get the information of a conference custom greeting.

    The response is either ``UserMeetMeConferencingGetConferenceGreetingResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )


class UserMeetMeConferencingGetConferenceGreetingRequest20(OCIRequest):
    """
    Get the information of a conference custom greeting.

    The response is either ``UserMeetMeConferencingGetConferenceGreetingResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )


class UserMeetMeConferencingGetConferenceRequest(OCIRequest):
    """
    Get the information of a conference owned by the user.

    The response is either ``UserMeetMeConferencingGetConferenceResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )


class UserMeetMeConferencingGetConferenceRequest19(OCIRequest):
    """
    Get the information of a conference owned by the user.

    The response is either ``UserMeetMeConferencingGetConferenceResponse19()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )


class UserMeetMeConferencingGetConferenceRequest20(OCIRequest):
    """
    Get the information of a conference owned by the user.

    The response is either ``UserMeetMeConferencingGetConferenceResponse20()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )


class UserMeetMeConferencingModifyConferenceDelegateListRequest(OCIRequest):
    """
    Modify the existing conference delegates list.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
        conference_delegate_user_list: conferenceDelegateUserList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
        E(
            "conference_delegate_user_list", "conferenceDelegateUserList",
            OCI.ReplacementUserIdList, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )
    conference_delegate_user_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserMeetMeConferencingModifyConferenceGreetingRequest(OCIRequest):
    """
    Modify an existing custom greeting audio file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
        play_entrance_greeting: playEntranceGreeting
        entrance_greeting_file: entranceGreetingFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
        E("play_entrance_greeting", "playEntranceGreeting", bool),
        E(
            "entrance_greeting_file", "entranceGreetingFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )
    play_entrance_greeting: bool = Field(type=bool, required=False, mutable=False)
    entrance_greeting_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )


class UserMeetMeConferencingModifyConferenceGreetingRequest20(OCIRequest):
    """
    Modify an existing custom greeting audio file.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
        play_entrance_greeting: playEntranceGreeting
        entrance_greeting_file: entranceGreetingFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
        E("play_entrance_greeting", "playEntranceGreeting", bool),
        E(
            "entrance_greeting_file", "entranceGreetingFile", OCI.AnnouncementFileKey,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )
    play_entrance_greeting: bool = Field(type=bool, required=False, mutable=False)
    entrance_greeting_file: "OCI.AnnouncementFileKey" = Field(
        type=OCI.AnnouncementFileKey, required=False, mutable=False,
    )


class UserMeetMeConferencingModifyConferenceRequest(OCIRequest):
    """
    Modify an existing conference.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The startTime
    element is adjusted to the first occurrence of the recurrent schedule that comes at or
    after the startTime.  The startTime, endTime and recurrence information for a
    conferenceSchedule element will be adjusted to the user Host time zone.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
        title: title
        estimated_participants: estimatedParticipants
        restrict_participants: restrictParticipants
        max_participants: maxParticipants
        account_code: accountCode
        mute_all_attendees_on_entry: muteAllAttendeesOnEntry
        end_conference_on_moderator_exit: endConferenceOnModeratorExit
        moderator_required: moderatorRequired
        require_security_pin: requireSecurityPin
        allow_unique_identifier: allowUniqueIdentifier
        attendee_notification: attendeeNotification
        conference_schedule: conferenceSchedule
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
        E("title", "title", str),
        E("estimated_participants", "estimatedParticipants", int),
        E("restrict_participants", "restrictParticipants", bool),
        E("max_participants", "maxParticipants", int),
        E("account_code", "accountCode", str),
        E("mute_all_attendees_on_entry", "muteAllAttendeesOnEntry", bool),
        E("end_conference_on_moderator_exit", "endConferenceOnModeratorExit", bool),
        E("moderator_required", "moderatorRequired", bool),
        E("require_security_pin", "requireSecurityPin", bool),
        E("allow_unique_identifier", "allowUniqueIdentifier", bool),
        E("attendee_notification", "attendeeNotification", str),
        E(
            "conference_schedule", "conferenceSchedule",
            OCI.MeetMeConferencingConferenceSchedule, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )
    title: str = Field(type=str, required=False, mutable=False)
    estimated_participants: int = Field(type=int, required=False, mutable=False)
    restrict_participants: bool = Field(type=bool, required=False, mutable=False)
    max_participants: int = Field(type=int, required=False, mutable=False)
    account_code: str = Field(type=str, required=False, mutable=False)
    mute_all_attendees_on_entry: bool = Field(type=bool, required=False, mutable=False)
    end_conference_on_moderator_exit: bool = Field(type=bool, required=False, mutable=False)
    moderator_required: bool = Field(type=bool, required=False, mutable=False)
    require_security_pin: bool = Field(type=bool, required=False, mutable=False)
    allow_unique_identifier: bool = Field(type=bool, required=False, mutable=False)
    attendee_notification: str = Field(type=str, required=False, mutable=False)
    conference_schedule: "OCI.MeetMeConferencingConferenceSchedule" = Field(
        type=OCI.MeetMeConferencingConferenceSchedule, required=False, mutable=False,
    )


class UserModifyRequest14(OCIRequest):
    """
    Request to modify a user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        last_name: lastName
        first_name: firstName
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        hiragana_last_name: hiraganaLastName
        hiragana_first_name: hiraganaFirstName
        phone_number: phoneNumber
        extension: extension
        calling_line_id_phone_number: callingLineIdPhoneNumber
        old_password: oldPassword
        new_password: newPassword
        department: department
        language: language
        time_zone: timeZone
        sip_alias_list: sipAliasList
        endpoint: endpoint
        title: title
        pager_phone_number: pagerPhoneNumber
        mobile_phone_number: mobilePhoneNumber
        email_address: emailAddress
        yahoo_id: yahooId
        address_location: addressLocation
        address: address
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("last_name", "lastName", str),
        E("first_name", "firstName", str),
        E("calling_line_id_last_name", "callingLineIdLastName", str),
        E("calling_line_id_first_name", "callingLineIdFirstName", str),
        E("hiragana_last_name", "hiraganaLastName", str),
        E("hiragana_first_name", "hiraganaFirstName", str),
        E("phone_number", "phoneNumber", str),
        E("extension", "extension", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("old_password", "oldPassword", str),
        E("new_password", "newPassword", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("language", "language", str),
        E("time_zone", "timeZone", str),
        E("sip_alias_list", "sipAliasList", OCI.ReplacementSIPAliasList, is_complex=True),
        E("endpoint", "endpoint", str, is_complex=True),  # unknown
        E("title", "title", str),
        E("pager_phone_number", "pagerPhoneNumber", str),
        E("mobile_phone_number", "mobilePhoneNumber", str),
        E("email_address", "emailAddress", str),
        E("yahoo_id", "yahooId", str),
        E("address_location", "addressLocation", str),
        E("address", "address", OCI.StreetAddress, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=False, mutable=False)
    hiragana_last_name: str = Field(type=str, required=False, mutable=False)
    hiragana_first_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    old_password: str = Field(type=str, required=False, mutable=False)
    new_password: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    language: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    sip_alias_list: "OCI.ReplacementSIPAliasList" = Field(
        type=OCI.ReplacementSIPAliasList, required=False, mutable=False,
    )
    endpoint: str = Field(type=str, required=False, mutable=False)
    title: str = Field(type=str, required=False, mutable=False)
    pager_phone_number: str = Field(type=str, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)
    email_address: str = Field(type=str, required=False, mutable=False)
    yahoo_id: str = Field(type=str, required=False, mutable=False)
    address_location: str = Field(type=str, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )


class UserModifyRequest14sp9(OCIRequest):
    """
    Request to modify a user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``UserModifyRequest16()``

    Attributes:
        user_id: userId
        last_name: lastName
        first_name: firstName
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        hiragana_last_name: hiraganaLastName
        hiragana_first_name: hiraganaFirstName
        phone_number: phoneNumber
        extension: extension
        calling_line_id_phone_number: callingLineIdPhoneNumber
        old_password: oldPassword
        new_password: newPassword
        department: department
        language: language
        time_zone: timeZone
        sip_alias_list: sipAliasList
        endpoint: endpoint
        title: title
        pager_phone_number: pagerPhoneNumber
        mobile_phone_number: mobilePhoneNumber
        email_address: emailAddress
        yahoo_id: yahooId
        address_location: addressLocation
        address: address
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("last_name", "lastName", str),
        E("first_name", "firstName", str),
        E("calling_line_id_last_name", "callingLineIdLastName", str),
        E("calling_line_id_first_name", "callingLineIdFirstName", str),
        E("hiragana_last_name", "hiraganaLastName", str),
        E("hiragana_first_name", "hiraganaFirstName", str),
        E("phone_number", "phoneNumber", str),
        E("extension", "extension", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("old_password", "oldPassword", str),
        E("new_password", "newPassword", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("language", "language", str),
        E("time_zone", "timeZone", str),
        E("sip_alias_list", "sipAliasList", OCI.ReplacementSIPAliasList, is_complex=True),
        E("endpoint", "endpoint", str, is_complex=True),  # unknown
        E("title", "title", str),
        E("pager_phone_number", "pagerPhoneNumber", str),
        E("mobile_phone_number", "mobilePhoneNumber", str),
        E("email_address", "emailAddress", str),
        E("yahoo_id", "yahooId", str),
        E("address_location", "addressLocation", str),
        E("address", "address", OCI.StreetAddress, is_complex=True),
        E("network_class_of_service", "networkClassOfService", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=False, mutable=False)
    hiragana_last_name: str = Field(type=str, required=False, mutable=False)
    hiragana_first_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    old_password: str = Field(type=str, required=False, mutable=False)
    new_password: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    language: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    sip_alias_list: "OCI.ReplacementSIPAliasList" = Field(
        type=OCI.ReplacementSIPAliasList, required=False, mutable=False,
    )
    endpoint: str = Field(type=str, required=False, mutable=False)
    title: str = Field(type=str, required=False, mutable=False)
    pager_phone_number: str = Field(type=str, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)
    email_address: str = Field(type=str, required=False, mutable=False)
    yahoo_id: str = Field(type=str, required=False, mutable=False)
    address_location: str = Field(type=str, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class UserModifyRequest16(OCIRequest):
    """
    Replaced By ``UserModifyRequest17sp4()`` Request to modify a user.

    When oldPassword is specified, all password rule applies.  If oldPassword in not
    specified, any password rule related to old password does not apply.  The request will
    fail if officeZoneName or primaryZoneName is present but the Location-Based Calling
    Restrictions service is not assigned to the user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        last_name: lastName
        first_name: firstName
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        hiragana_last_name: hiraganaLastName
        hiragana_first_name: hiraganaFirstName
        phone_number: phoneNumber
        extension: extension
        calling_line_id_phone_number: callingLineIdPhoneNumber
        old_password: oldPassword
        new_password: newPassword
        department: department
        language: language
        time_zone: timeZone
        sip_alias_list: sipAliasList
        endpoint: endpoint
        title: title
        pager_phone_number: pagerPhoneNumber
        mobile_phone_number: mobilePhoneNumber
        email_address: emailAddress
        yahoo_id: yahooId
        address_location: addressLocation
        address: address
        network_class_of_service: networkClassOfService
        office_zone_name: officeZoneName
        primary_zone_name: primaryZoneName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("last_name", "lastName", str),
        E("first_name", "firstName", str),
        E("calling_line_id_last_name", "callingLineIdLastName", str),
        E("calling_line_id_first_name", "callingLineIdFirstName", str),
        E("hiragana_last_name", "hiraganaLastName", str),
        E("hiragana_first_name", "hiraganaFirstName", str),
        E("phone_number", "phoneNumber", str),
        E("extension", "extension", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("old_password", "oldPassword", str),
        E("new_password", "newPassword", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("language", "language", str),
        E("time_zone", "timeZone", str),
        E("sip_alias_list", "sipAliasList", OCI.ReplacementSIPAliasList, is_complex=True),
        E("endpoint", "endpoint", str, is_complex=True),  # unknown
        E("title", "title", str),
        E("pager_phone_number", "pagerPhoneNumber", str),
        E("mobile_phone_number", "mobilePhoneNumber", str),
        E("email_address", "emailAddress", str),
        E("yahoo_id", "yahooId", str),
        E("address_location", "addressLocation", str),
        E("address", "address", OCI.StreetAddress, is_complex=True),
        E("network_class_of_service", "networkClassOfService", str),
        E("office_zone_name", "officeZoneName", str),
        E("primary_zone_name", "primaryZoneName", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=False, mutable=False)
    hiragana_last_name: str = Field(type=str, required=False, mutable=False)
    hiragana_first_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    old_password: str = Field(type=str, required=False, mutable=False)
    new_password: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    language: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    sip_alias_list: "OCI.ReplacementSIPAliasList" = Field(
        type=OCI.ReplacementSIPAliasList, required=False, mutable=False,
    )
    endpoint: str = Field(type=str, required=False, mutable=False)
    title: str = Field(type=str, required=False, mutable=False)
    pager_phone_number: str = Field(type=str, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)
    email_address: str = Field(type=str, required=False, mutable=False)
    yahoo_id: str = Field(type=str, required=False, mutable=False)
    address_location: str = Field(type=str, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    office_zone_name: str = Field(type=str, required=False, mutable=False)
    primary_zone_name: str = Field(type=str, required=False, mutable=False)


class UserModifyRequest17sp4(OCIRequest):
    """
    Request to modify a user.

    When oldPassword is specified, all password rule applies.  If oldPassword in not
    specified, any password rule related to old password does not apply.  The request will
    fail if officeZoneName or primaryZoneName is present but the Location-Based Calling
    Restrictions service is not assigned to the user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    data elements are only used in AS data mode: contact[2]-contact[5] The impId and
    impPassword are accepted when the Third-Party IMP service is assigned to the user;
    when Integrated IMP service is assigned to the user and active, only the impPassword
    is accepted; all other cases, the request fails if either field is changed.

    Attributes:
        user_id: userId
        last_name: lastName
        first_name: firstName
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        name_dialing_name: nameDialingName
        hiragana_last_name: hiraganaLastName
        hiragana_first_name: hiraganaFirstName
        phone_number: phoneNumber
        extension: extension
        calling_line_id_phone_number: callingLineIdPhoneNumber
        old_password: oldPassword
        new_password: newPassword
        department: department
        language: language
        time_zone: timeZone
        sip_alias_list: sipAliasList
        endpoint: endpoint
        title: title
        pager_phone_number: pagerPhoneNumber
        mobile_phone_number: mobilePhoneNumber
        email_address: emailAddress
        yahoo_id: yahooId
        address_location: addressLocation
        address: address
        network_class_of_service: networkClassOfService
        office_zone_name: officeZoneName
        primary_zone_name: primaryZoneName
        imp_id: impId
        imp_password: impPassword
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("last_name", "lastName", str),
        E("first_name", "firstName", str),
        E("calling_line_id_last_name", "callingLineIdLastName", str),
        E("calling_line_id_first_name", "callingLineIdFirstName", str),
        E("name_dialing_name", "nameDialingName", OCI.NameDialingName, is_complex=True),
        E("hiragana_last_name", "hiraganaLastName", str),
        E("hiragana_first_name", "hiraganaFirstName", str),
        E("phone_number", "phoneNumber", str),
        E("extension", "extension", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("old_password", "oldPassword", str),
        E("new_password", "newPassword", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("language", "language", str),
        E("time_zone", "timeZone", str),
        E("sip_alias_list", "sipAliasList", OCI.ReplacementSIPAliasList, is_complex=True),
        E("endpoint", "endpoint", str, is_complex=True),  # unknown
        E("title", "title", str),
        E("pager_phone_number", "pagerPhoneNumber", str),
        E("mobile_phone_number", "mobilePhoneNumber", str),
        E("email_address", "emailAddress", str),
        E("yahoo_id", "yahooId", str),
        E("address_location", "addressLocation", str),
        E("address", "address", OCI.StreetAddress, is_complex=True),
        E("network_class_of_service", "networkClassOfService", str),
        E("office_zone_name", "officeZoneName", str),
        E("primary_zone_name", "primaryZoneName", str),
        E("imp_id", "impId", str),
        E("imp_password", "impPassword", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    last_name: str = Field(type=str, required=False, mutable=False)
    first_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=False, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=False, mutable=False)
    name_dialing_name: "OCI.NameDialingName" = Field(
        type=OCI.NameDialingName, required=False, mutable=False,
    )
    hiragana_last_name: str = Field(type=str, required=False, mutable=False)
    hiragana_first_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    old_password: str = Field(type=str, required=False, mutable=False)
    new_password: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    language: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    sip_alias_list: "OCI.ReplacementSIPAliasList" = Field(
        type=OCI.ReplacementSIPAliasList, required=False, mutable=False,
    )
    endpoint: str = Field(type=str, required=False, mutable=False)
    title: str = Field(type=str, required=False, mutable=False)
    pager_phone_number: str = Field(type=str, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)
    email_address: str = Field(type=str, required=False, mutable=False)
    yahoo_id: str = Field(type=str, required=False, mutable=False)
    address_location: str = Field(type=str, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    office_zone_name: str = Field(type=str, required=False, mutable=False)
    primary_zone_name: str = Field(type=str, required=False, mutable=False)
    imp_id: str = Field(type=str, required=False, mutable=False)
    imp_password: str = Field(type=str, required=False, mutable=False)


class UserMusicOnHoldUserModifyRequest(OCIRequest):
    """
    Modify data for Music On Hold User.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserMusicOnHoldUserModifyRequest16()``

    Attributes:
        user_id: userId
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("source", "source", OCI.MusicOnHoldUserSourceModify, is_complex=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool,
        ),
        E(
            "internal_source", "internalSource", OCI.MusicOnHoldUserSourceModify,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    source: "OCI.MusicOnHoldUserSourceModify" = Field(
        type=OCI.MusicOnHoldUserSourceModify, required=False, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldUserSourceModify" = Field(
        type=OCI.MusicOnHoldUserSourceModify, required=False, mutable=False,
    )


class UserMusicOnHoldUserModifyRequest16(OCIRequest):
    """
    Modify data for Music On Hold User.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("source", "source", OCI.MusicOnHoldUserSourceModify16, is_complex=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool,
        ),
        E(
            "internal_source", "internalSource", OCI.MusicOnHoldUserSourceModify16,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    source: "OCI.MusicOnHoldUserSourceModify16" = Field(
        type=OCI.MusicOnHoldUserSourceModify16, required=False, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldUserSourceModify16" = Field(
        type=OCI.MusicOnHoldUserSourceModify16, required=False, mutable=False,
    )


class UserMusicOnHoldUserModifyRequest20(OCIRequest):
    """
    Modify data for Music On Hold User.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        source: source
        use_alternate_source_for_internal_calls: useAlternateSourceForInternalCalls
        internal_source: internalSource
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("source", "source", OCI.MusicOnHoldUserSourceModify20, is_complex=True),
        E(
            "use_alternate_source_for_internal_calls",
            "useAlternateSourceForInternalCalls", bool,
        ),
        E(
            "internal_source", "internalSource", OCI.MusicOnHoldUserSourceModify20,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    source: "OCI.MusicOnHoldUserSourceModify20" = Field(
        type=OCI.MusicOnHoldUserSourceModify20, required=False, mutable=False,
    )
    use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    internal_source: "OCI.MusicOnHoldUserSourceModify20" = Field(
        type=OCI.MusicOnHoldUserSourceModify20, required=False, mutable=False,
    )


class UserOCICallControlApplicationModifyRequest(OCIRequest):
    """
    Modify which OCI Call Control Applications are enabled on a user The response is
    either ``SuccessResponse()`` or ``ErrorResponse()``.


    Attributes:
        user_id: userId
        application_id_list: applicationIdList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "application_id_list", "applicationIdList",
            OCI.ReplacementOCICallControlApplicationIdList, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    application_id_list: "OCI.ReplacementOCICallControlApplicationIdList" = Field(
        type=OCI.ReplacementOCICallControlApplicationIdList, required=False, mutable=False,
    )


class UserOutgoingCallingPlanAuthorizationCodeAddListRequest(OCIRequest):
    """
    Add a list of authorization codes to a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        code_entry: codeEntry
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "code_entry", "codeEntry", OCI.OutgoingCallingPlanAuthorizationCodeEntry,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    code_entry: "OCI.OutgoingCallingPlanAuthorizationCodeEntry" = Field(
        type=OCI.OutgoingCallingPlanAuthorizationCodeEntry, required=True, mutable=False,
    )


class UserOutgoingCallingPlanCallMeNowModifyRequest(OCIRequest):
    """
    Modify the Call Me Now call permissions for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingCallingPlanCallMeNowPermissionsModify, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingCallingPlanCallMeNowPermissionsModify" = Field(
        type=OCI.OutgoingCallingPlanCallMeNowPermissionsModify, required=False,
        mutable=False,
    )


class UserOutgoingCallingPlanOriginatingModifyRequest(OCIRequest):
    """
    Modify the originating permissions for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingCallingPlanOriginatingPermissionsModify, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingCallingPlanOriginatingPermissionsModify" = Field(
        type=OCI.OutgoingCallingPlanOriginatingPermissionsModify, required=False,
        mutable=False,
    )


class UserOutgoingCallingPlanRedirectedModifyRequest(OCIRequest):
    """
    Modify the call forwarded/transferred permissions for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingCallingPlanRedirectedPermissionsModify, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingCallingPlanRedirectedPermissionsModify" = Field(
        type=OCI.OutgoingCallingPlanRedirectedPermissionsModify, required=False,
        mutable=False,
    )


class UserOutgoingCallingPlanRedirectingModifyRequest(OCIRequest):
    """
    Modify the initiating call forwards/transfer permissions for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingCallingPlanRedirectingPermissionsModify, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingCallingPlanRedirectingPermissionsModify" = Field(
        type=OCI.OutgoingCallingPlanRedirectingPermissionsModify, required=False,
        mutable=False,
    )


class UserOutgoingCallingPlanTransferNumbersModifyRequest(OCIRequest):
    """
    Modify the transfer numbers for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_numbers: userNumbers
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_numbers", "userNumbers", OCI.OutgoingCallingPlanTransferNumbersModify,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_numbers: "OCI.OutgoingCallingPlanTransferNumbersModify" = Field(
        type=OCI.OutgoingCallingPlanTransferNumbersModify, required=False, mutable=False,
    )


class UserPersonalAssistantExclusionNumberGetListRequest(OCIRequest):
    """
    Request to get the User Personal Assistant Exclusion Number List information.

    The response is either a userPersonalAssistantExclusionNumberGetListResponse or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        search_criteria_personal_assistant_exclusion_number:
            searchCriteriaPersonalAssistantExclusionNumber
        search_criteria_personal_assistant_exclusion_number_description:
            searchCriteriaPersonalAssistantExclusionNumberDescription
        response_size_limit: responseSizeLimit
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "search_criteria_personal_assistant_exclusion_number",
            "searchCriteriaPersonalAssistantExclusionNumber",
            OCI.SearchCriteriaPersonalAssistantExclusionNumber, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_personal_assistant_exclusion_number_description",
            "searchCriteriaPersonalAssistantExclusionNumberDescription",
            OCI.SearchCriteriaPersonalAssistantExclusionNumberDescription,
            is_complex=True, is_array=True,
        ),
        E("response_size_limit", "responseSizeLimit", int),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    search_criteria_personal_assistant_exclusion_number: "List[OCI.SearchCriteriaPersonalAssistantExclusionNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_personal_assistant_exclusion_number_description: "List[OCI.SearchCriteriaPersonalAssistantExclusionNumberDescription]" = Field(
        type=list, required=False, mutable=False,
    )
    response_size_limit: int = Field(type=int, required=False, mutable=False)


class UserPersonalPhoneListAddListRequest(OCIRequest):
    """
    Add one or more entries to a user's personal phone list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        entry: entry
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("entry", "entry", OCI.PhoneListEntry, is_complex=True, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    entry: "OCI.PhoneListEntry" = Field(type=OCI.PhoneListEntry, required=True, mutable=False)


class UserPersonalPhoneListGetListRequest(OCIRequest):
    """
    Get a user's personal phone list.

    The response is either a ``UserPersonalPhoneListGetListResponse()`` or an
    ``ErrorResponse()``. The search can be done using multiple criterion.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterion are included
    in the results.  If no search criteria is specified, all results are returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``. In all cases, if a responseSizeLimit is specified and the number
    of matching results is more than this limit, then an ``ErrorResponse()`` is returned.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_user_personal_phone_list_name:
            searchCriteriaUserPersonalPhoneListName
        search_criteria_user_personal_phone_list_number:
            searchCriteriaUserPersonalPhoneListNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_user_personal_phone_list_name",
            "searchCriteriaUserPersonalPhoneListName",
            OCI.SearchCriteriaUserPersonalPhoneListName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_personal_phone_list_number",
            "searchCriteriaUserPersonalPhoneListNumber",
            OCI.SearchCriteriaUserPersonalPhoneListNumber, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_user_personal_phone_list_name: "List[OCI.SearchCriteriaUserPersonalPhoneListName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_personal_phone_list_number: "List[OCI.SearchCriteriaUserPersonalPhoneListNumber]" = Field(
        type=list, required=False, mutable=False,
    )


class UserPersonalPhoneListGetPagedSortedListRequest(OCIRequest):
    """
    Get a user's personal phone list.

    The response is either a ``UserPersonalPhoneListGetPagedSortedListResponse()`` or an
    ``ErrorResponse()``. The search can be done using multiple criterion.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterion are included
    in the results.  If no search criteria is specified, all results are returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``. The sort can done by the personal phone list number or name.

    Attributes:
        user_id: userId
        response_paging_control: responsePagingControl
        sort_by_user_personal_phone_list_number: sortByUserPersonalPhoneListNumber
        sort_by_user_personal_phone_list_name: sortByUserPersonalPhoneListName
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_user_personal_phone_list_name:
            searchCriteriaUserPersonalPhoneListName
        search_criteria_user_personal_phone_list_number:
            searchCriteriaUserPersonalPhoneListNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True, is_required=True,
        ),
        E(
            "sort_by_user_personal_phone_list_number",
            "sortByUserPersonalPhoneListNumber", OCI.SortByUserPersonalPhoneListNumber,
            is_complex=True,
        ),
        E(
            "sort_by_user_personal_phone_list_name", "sortByUserPersonalPhoneListName",
            OCI.SortByUserPersonalPhoneListName, is_complex=True,
        ),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_user_personal_phone_list_name",
            "searchCriteriaUserPersonalPhoneListName",
            OCI.SearchCriteriaUserPersonalPhoneListName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_personal_phone_list_number",
            "searchCriteriaUserPersonalPhoneListNumber",
            OCI.SearchCriteriaUserPersonalPhoneListNumber, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=True, mutable=False,
    )
    sort_by_user_personal_phone_list_number: "OCI.SortByUserPersonalPhoneListNumber" = Field(
        type=OCI.SortByUserPersonalPhoneListNumber, required=False, mutable=False,
    )
    sort_by_user_personal_phone_list_name: "OCI.SortByUserPersonalPhoneListName" = Field(
        type=OCI.SortByUserPersonalPhoneListName, required=False, mutable=False,
    )
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_user_personal_phone_list_name: "List[OCI.SearchCriteriaUserPersonalPhoneListName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_personal_phone_list_number: "List[OCI.SearchCriteriaUserPersonalPhoneListNumber]" = Field(
        type=list, required=False, mutable=False,
    )


class UserPhoneDirectoryGetPagedSortedListRequest(OCIRequest):
    """
    Request a table containing the phone directory for a user.

    Setting isEnterpriseRequested to true will return enterprise directory members in the
    response if the user is in an enterprise.  Otherwise, just the group directory members
    for a user are returned in the response.

    The response is either ``UserPhoneDirectoryGetPagedSortedListResponse()`` or
    ``ErrorResponse()``. The search can be done using multiple criterias.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterias are included
    in the results.  If no search criteria is specified, all results are returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``. The sort can be performed on user last name, first name, or
    department.

    Attributes:
        user_id: userId
        is_enterprise_info_requested: isEnterpriseInfoRequested
        response_paging_control: responsePagingControl
        sort_by_user_last_name: sortByUserLastName
        sort_by_user_first_name: sortByUserFirstName
        sort_by_user_department: sortByUserDepartment
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_department_name: searchCriteriaDepartmentName
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "is_enterprise_info_requested", "isEnterpriseInfoRequested", bool,
            is_required=True,
        ),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True, is_required=True,
        ),
        E(
            "sort_by_user_last_name", "sortByUserLastName", OCI.SortByUserLastName,
            is_complex=True,
        ),
        E(
            "sort_by_user_first_name", "sortByUserFirstName", OCI.SortByUserFirstName,
            is_complex=True,
        ),
        E(
            "sort_by_user_department", "sortByUserDepartment", OCI.SortByUserDepartment,
            is_complex=True,
        ),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_department_name", "searchCriteriaDepartmentName",
            OCI.SearchCriteriaDepartmentName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_enterprise_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=True, mutable=False,
    )
    sort_by_user_last_name: "OCI.SortByUserLastName" = Field(
        type=OCI.SortByUserLastName, required=False, mutable=False,
    )
    sort_by_user_first_name: "OCI.SortByUserFirstName" = Field(
        type=OCI.SortByUserFirstName, required=False, mutable=False,
    )
    sort_by_user_department: "OCI.SortByUserDepartment" = Field(
        type=OCI.SortByUserDepartment, required=False, mutable=False,
    )
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_department_name: "List[OCI.SearchCriteriaDepartmentName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserPolycomPhoneServicesGetRequest(OCIRequest):
    """
    Request the user's Polycom Phone Services attributes.

    The response is either a ``UserPolycomPhoneServicesGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device: accessDevice
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device", "accessDevice", OCI.AccessDevice, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=True, mutable=False,
    )


class UserPolycomPhoneServicesModifyRequest(OCIRequest):
    """
    Modify the user's Polycom Phone Services attributes.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device: accessDevice
        integrate_phone_directory_with_broad_works: integratePhoneDirectoryWithBroadWorks
        include_user_personal_phone_list_in_directory:
            includeUserPersonalPhoneListInDirectory
        include_group_custom_contact_directory_in_directory:
            includeGroupCustomContactDirectoryInDirectory
        group_custom_contact_directory: groupCustomContactDirectory
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device", "accessDevice", OCI.AccessDevice, is_complex=True,
            is_required=True,
        ),
        E(
            "integrate_phone_directory_with_broad_works",
            "integratePhoneDirectoryWithBroadWorks", bool,
        ),
        E(
            "include_user_personal_phone_list_in_directory",
            "includeUserPersonalPhoneListInDirectory", bool,
        ),
        E(
            "include_group_custom_contact_directory_in_directory",
            "includeGroupCustomContactDirectoryInDirectory", bool,
        ),
        E("group_custom_contact_directory", "groupCustomContactDirectory", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=True, mutable=False,
    )
    integrate_phone_directory_with_broad_works: bool = Field(
        type=bool, required=False, mutable=False,
    )
    include_user_personal_phone_list_in_directory: bool = Field(
        type=bool, required=False, mutable=False,
    )
    include_group_custom_contact_directory_in_directory: bool = Field(
        type=bool, required=False, mutable=False,
    )
    group_custom_contact_directory: str = Field(type=str, required=False, mutable=False)


class UserPreAlertingAnnouncementAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's pre-alerting service.

    For the callToNumber, the extension element is not used and the number element is only
    used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        call_to_number: callToNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)


class UserPreferredCarrierUserModifyRequest(OCIRequest):
    """
    Modifies the currently configured preferred carriers for a user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        intra_lata_carrier: intraLataCarrier
        inter_lata_carrier: interLataCarrier
        international_carrier: internationalCarrier
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "intra_lata_carrier", "intraLataCarrier", OCI.UserPreferredCarrierNameModify,
            is_complex=True,
        ),
        E(
            "inter_lata_carrier", "interLataCarrier", OCI.UserPreferredCarrierNameModify,
            is_complex=True,
        ),
        E(
            "international_carrier", "internationalCarrier",
            OCI.UserPreferredCarrierNameModify, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    intra_lata_carrier: "OCI.UserPreferredCarrierNameModify" = Field(
        type=OCI.UserPreferredCarrierNameModify, required=False, mutable=False,
    )
    inter_lata_carrier: "OCI.UserPreferredCarrierNameModify" = Field(
        type=OCI.UserPreferredCarrierNameModify, required=False, mutable=False,
    )
    international_carrier: "OCI.UserPreferredCarrierNameModify" = Field(
        type=OCI.UserPreferredCarrierNameModify, required=False, mutable=False,
    )


class UserPriorityAlertAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's priority alert service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.PriorityAlertCriteriaFromDn,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.PriorityAlertCriteriaFromDn" = Field(
        type=OCI.PriorityAlertCriteriaFromDn, required=True, mutable=False,
    )


class UserPriorityAlertAddCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's priority alert service.

    For the callToNumber, the extension element is not used and the number element is only
    used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        call_to_number: callToNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.PriorityAlertCriteriaFromDn,
            is_complex=True, is_required=True,
        ),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.PriorityAlertCriteriaFromDn" = Field(
        type=OCI.PriorityAlertCriteriaFromDn, required=True, mutable=False,
    )
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)


class UserPriorityAlertModifyActiveCriteriaListRequest(OCIRequest):
    """
    Activate the user's priority alert criteria list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserPrivacyModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Privacy.

    This command is supported for regular users only.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        enable_directory_privacy: enableDirectoryPrivacy
        enable_auto_attendant_extension_dialing_privacy:
            enableAutoAttendantExtensionDialingPrivacy
        enable_auto_attendant_name_dialing_privacy: enableAutoAttendantNameDialingPrivacy
        enable_phone_status_privacy: enablePhoneStatusPrivacy
        permitted_monitor_user_id_list: permittedMonitorUserIdList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("enable_directory_privacy", "enableDirectoryPrivacy", bool),
        E(
            "enable_auto_attendant_extension_dialing_privacy",
            "enableAutoAttendantExtensionDialingPrivacy", bool,
        ),
        E(
            "enable_auto_attendant_name_dialing_privacy",
            "enableAutoAttendantNameDialingPrivacy", bool,
        ),
        E("enable_phone_status_privacy", "enablePhoneStatusPrivacy", bool),
        E(
            "permitted_monitor_user_id_list", "permittedMonitorUserIdList",
            OCI.ReplacementUserIdList, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    enable_directory_privacy: bool = Field(type=bool, required=False, mutable=False)
    enable_auto_attendant_extension_dialing_privacy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_auto_attendant_name_dialing_privacy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_phone_status_privacy: bool = Field(type=bool, required=False, mutable=False)
    permitted_monitor_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserPushToTalkModifyRequest(OCIRequest):
    """
    Change the push to talk service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        allow_auto_answer: allowAutoAnswer
        outgoing_connection_selection: outgoingConnectionSelection
        access_list_selection: accessListSelection
        selected_user_id_list: selectedUserIdList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("allow_auto_answer", "allowAutoAnswer", bool),
        E("outgoing_connection_selection", "outgoingConnectionSelection", str),
        E("access_list_selection", "accessListSelection", str),
        E(
            "selected_user_id_list", "selectedUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    allow_auto_answer: bool = Field(type=bool, required=False, mutable=False)
    outgoing_connection_selection: str = Field(type=str, required=False, mutable=False)
    access_list_selection: str = Field(type=str, required=False, mutable=False)
    selected_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserRouteListModifyRequest(OCIRequest):
    """
    Modify the route list setting and the list of number ranges assigned to a user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        treat_originations_and_pbx_redirections_as_screened:
            treatOriginationsAndPBXRedirectionsAsScreened
        use_route_list_identity_for_non_emergency_calls:
            useRouteListIdentityForNonEmergencyCalls
        use_route_list_identity_for_emergency_calls: useRouteListIdentityForEmergencyCalls
        assigned_number_range_start_list: assignedNumberRangeStartList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "treat_originations_and_pbx_redirections_as_screened",
            "treatOriginationsAndPBXRedirectionsAsScreened", bool,
        ),
        E(
            "use_route_list_identity_for_non_emergency_calls",
            "useRouteListIdentityForNonEmergencyCalls", bool,
        ),
        E(
            "use_route_list_identity_for_emergency_calls",
            "useRouteListIdentityForEmergencyCalls", bool,
        ),
        E(
            "assigned_number_range_start_list", "assignedNumberRangeStartList",
            OCI.ReplacementDNList, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    treat_originations_and_pbx_redirections_as_screened: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_route_list_identity_for_non_emergency_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_route_list_identity_for_emergency_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    assigned_number_range_start_list: "OCI.ReplacementDNList" = Field(
        type=OCI.ReplacementDNList, required=False, mutable=False,
    )


class UserRoutePointSupervisorModifyListRequest(OCIRequest):
    """
    Request to modify the Route Point supervisor list for a user.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        supervisor_user_id_list: supervisorUserIdList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "supervisor_user_id_list", "supervisorUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    supervisor_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class UserScheduleAddEventRequest(OCIRequest):
    """
    Add an event to user schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after the startDate.  The endDate element is set to the sum of the
    adjusted starDate element value and the event duration.

    Attributes:
        user_id: userId
        schedule_key: scheduleKey
        event_name: eventName
        start_date: startDate
        all_day_event: allDayEvent
        start_time: startTime
        end_time: endTime
        end_date: endDate
        recurrence: recurrence
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
        E("start_date", "startDate", str, is_required=True),
        E("all_day_event", "allDayEvent", bool),
        E("start_time", "startTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_time", "endTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_date", "endDate", str, is_required=True),
        E("recurrence", "recurrence", OCI.Recurrence, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)
    start_date: str = Field(type=str, required=True, mutable=False)
    all_day_event: bool = Field(type=bool, required=False, mutable=False)
    start_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_date: str = Field(type=str, required=True, mutable=False)
    recurrence: "OCI.Recurrence" = Field(type=OCI.Recurrence, required=False, mutable=False)


class UserScheduleDeleteEventListRequest(OCIRequest):
    """
    Delete a list of events from a user schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        schedule_key: scheduleKey
        event_name: eventName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)


class UserScheduleDeleteListRequest(OCIRequest):
    """
    Delete a list of user schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        schedule_key: scheduleKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )


class UserScheduleGetEventListRequest(OCIRequest):
    """
    Get the list of events of a user schedule.

    The response is either a ``UserScheduleGetEventListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        schedule_key: scheduleKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )


class UserScheduleGetEventRequest(OCIRequest):
    """
    Get an event from a user schedule.

    The response is either a ``UserScheduleGetEventResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        schedule_key: scheduleKey
        event_name: eventName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)


class UserScheduleModifyEventRequest(OCIRequest):
    """
    Modify an event of a user schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after the startDate.  The endDate element is set to the sum of the
    adjusted starDate element value and the event duration.

    Attributes:
        user_id: userId
        schedule_key: scheduleKey
        event_name: eventName
        new_event_name: newEventName
        start_date: startDate
        all_day_event: allDayEvent
        start_time: startTime
        end_time: endTime
        end_date: endDate
        recurrence: recurrence
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("event_name", "eventName", str, is_required=True),
        E("new_event_name", "newEventName", str),
        E("start_date", "startDate", str),
        E("all_day_event", "allDayEvent", bool),
        E("start_time", "startTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_time", "endTime", OCI.HourMinute, is_complex=True, is_required=True),
        E("end_date", "endDate", str),
        E("recurrence", "recurrence", OCI.Recurrence, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    event_name: str = Field(type=str, required=True, mutable=False)
    new_event_name: str = Field(type=str, required=False, mutable=False)
    start_date: str = Field(type=str, required=False, mutable=False)
    all_day_event: bool = Field(type=bool, required=False, mutable=False)
    start_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_time: "OCI.HourMinute" = Field(type=OCI.HourMinute, required=True, mutable=False)
    end_date: str = Field(type=str, required=False, mutable=False)
    recurrence: "OCI.Recurrence" = Field(type=OCI.Recurrence, required=False, mutable=False)


class UserScheduleModifyRequest(OCIRequest):
    """
    Modify a user schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        schedule_key: scheduleKey
        new_schedule_name: newScheduleName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("schedule_key", "scheduleKey", OCI.ScheduleKey, is_complex=True, is_required=True),
        E("new_schedule_name", "newScheduleName", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_key: "OCI.ScheduleKey" = Field(
        type=OCI.ScheduleKey, required=True, mutable=False,
    )
    new_schedule_name: str = Field(type=str, required=False, mutable=False)


class UserSelectiveCallAcceptanceAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's selective call acceptance service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )


class UserSelectiveCallAcceptanceAddCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's selective call acceptance service.

    For the callToNumber, the extension element is not used and the number element is only
    used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        call_to_number: callToNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)


class UserSelectiveCallAcceptanceModifyActiveCriteriaListRequest(OCIRequest):
    """
    Activate the user's selective call acceptance criteria list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserSelectiveCallRejectionAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's selective call rejection service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )


class UserSelectiveCallRejectionAddCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's selective call rejection service.

    For the callToNumber, the extension element is not used and the number element is only
    used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        call_to_number: callToNumber
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria",
            OCI.SelectiveCallRejectionCriteriaCallType, is_complex=True, is_required=True,
        ),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.SelectiveCallRejectionCriteriaCallType" = Field(
        type=OCI.SelectiveCallRejectionCriteriaCallType, required=True, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)


class UserSelectiveCallRejectionModifyActiveCriteriaListRequest(OCIRequest):
    """
    Activate the user's selective call rejection criteria list.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserSequentialRingAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's sequential ring service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )


class UserSequentialRingAddCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's sequential ring service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )


class UserSequentialRingModifyRequest(OCIRequest):
    """
    Modify the user's sequential ring service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        ring_base_location_first: ringBaseLocationFirst
        base_location_number_of_rings: baseLocationNumberOfRings
        continue_if_base_location_is_busy: continueIfBaseLocationIsBusy
        caller_may_stop_search: callerMayStopSearch
        location01: Location01
        location02: Location02
        location03: Location03
        location04: Location04
        location05: Location05
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("ring_base_location_first", "ringBaseLocationFirst", bool),
        E("base_location_number_of_rings", "baseLocationNumberOfRings", int),
        E("continue_if_base_location_is_busy", "continueIfBaseLocationIsBusy", bool),
        E("caller_may_stop_search", "callerMayStopSearch", bool),
        E("location01", "Location01", OCI.SequentialRingLocationModify, is_complex=True),
        E("location02", "Location02", OCI.SequentialRingLocationModify, is_complex=True),
        E("location03", "Location03", OCI.SequentialRingLocationModify, is_complex=True),
        E("location04", "Location04", OCI.SequentialRingLocationModify, is_complex=True),
        E("location05", "Location05", OCI.SequentialRingLocationModify, is_complex=True),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    ring_base_location_first: bool = Field(type=bool, required=False, mutable=False)
    base_location_number_of_rings: int = Field(type=int, required=False, mutable=False)
    continue_if_base_location_is_busy: bool = Field(type=bool, required=False, mutable=False)
    caller_may_stop_search: bool = Field(type=bool, required=False, mutable=False)
    location01: "OCI.SequentialRingLocationModify" = Field(
        type=OCI.SequentialRingLocationModify, required=False, mutable=False,
    )
    location02: "OCI.SequentialRingLocationModify" = Field(
        type=OCI.SequentialRingLocationModify, required=False, mutable=False,
    )
    location03: "OCI.SequentialRingLocationModify" = Field(
        type=OCI.SequentialRingLocationModify, required=False, mutable=False,
    )
    location04: "OCI.SequentialRingLocationModify" = Field(
        type=OCI.SequentialRingLocationModify, required=False, mutable=False,
    )
    location05: "OCI.SequentialRingLocationModify" = Field(
        type=OCI.SequentialRingLocationModify, required=False, mutable=False,
    )
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserServiceScriptsUserModifyRequest(OCIRequest):
    """
    Modify the user level data associated with Service Scripts User Configuration.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        script_file: scriptFile
        script_url: scriptUrl
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("script_file", "scriptFile", OCI.ServiceScriptsFileResource, is_complex=True),
        E("script_url", "scriptUrl", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    script_file: "OCI.ServiceScriptsFileResource" = Field(
        type=OCI.ServiceScriptsFileResource, required=False, mutable=False,
    )
    script_url: str = Field(type=str, required=False, mutable=False)


class UserShInterfaceGetPublicIdDataRequest(OCIRequest):
    """
    Returns the Sh non-transparent data stored against a Public User Identity (a SIP URI
    or TEL URI).

    The response is either a ``UserShInterfaceGetPublicIdDataResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        public_user_identity: publicUserIdentity
    """

    _ELEMENTS = (
        E(
            "public_user_identity", "publicUserIdentity", OCI.PublicUserIdentity,
            is_complex=True, is_required=True,
        ),
    )

    public_user_identity: "OCI.PublicUserIdentity" = Field(
        type=OCI.PublicUserIdentity, required=True, mutable=False,
    )


class UserShInterfaceModifyRequest(OCIRequest):
    """
    Modifies the Sh Interface non-transparent data associated with a Public User Identity.

    The response is a ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        public_user_identity: publicUserIdentity
        scscf_name: SCSCFName
        ims_user_state: IMSUserState
    """

    _ELEMENTS = (
        E(
            "public_user_identity", "publicUserIdentity", OCI.PublicUserIdentity,
            is_complex=True, is_required=True,
        ),
        E("scscf_name", "SCSCFName", str),
        E("ims_user_state", "IMSUserState", str),
    )

    public_user_identity: "OCI.PublicUserIdentity" = Field(
        type=OCI.PublicUserIdentity, required=True, mutable=False,
    )
    scscf_name: str = Field(type=str, required=False, mutable=False)
    ims_user_state: str = Field(type=str, required=False, mutable=False)


class UserShInterfacePublicIdentityRefreshTaskStartRequest(OCIRequest):
    """
    Dispatches a Public Identity refresh task on the local Application Server node for the
    specified public identity.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        public_user_identity: publicUserIdentity
    """

    _ELEMENTS = (
        E(
            "public_user_identity", "publicUserIdentity", OCI.PublicUserIdentity,
            is_complex=True, is_required=True,
        ),
    )

    public_user_identity: "OCI.PublicUserIdentity" = Field(
        type=OCI.PublicUserIdentity, required=True, mutable=False,
    )


class UserSimultaneousRingFamilyAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's simultaneous ring family service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )


class UserSimultaneousRingFamilyModifyRequest(OCIRequest):
    """
    Modify the user's simultaneous ring family service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserSimultaneousRingFamilyModifyRequest14sp4()``

    Attributes:
        user_id: userId
        is_active: isActive
        incoming_calls: incomingCalls
        sim_ring_phone_number_list: simRingPhoneNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("incoming_calls", "incomingCalls", str),
        E(
            "sim_ring_phone_number_list", "simRingPhoneNumberList",
            OCI.ReplacementOutgoingDNorSIPURIList, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    incoming_calls: str = Field(type=str, required=False, mutable=False)
    sim_ring_phone_number_list: "OCI.ReplacementOutgoingDNorSIPURIList" = Field(
        type=OCI.ReplacementOutgoingDNorSIPURIList, required=False, mutable=False,
    )


class UserSimultaneousRingPersonalAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's simultaneous ring personal service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )


class UserSimultaneousRingPersonalModifyRequest(OCIRequest):
    """
    Modify the user's simultaneous ring personal service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserSimultaneousRingPersonalModifyRequest14sp4()``

    Attributes:
        user_id: userId
        is_active: isActive
        incoming_calls: incomingCalls
        sim_ring_phone_number_list: simRingPhoneNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("incoming_calls", "incomingCalls", str),
        E(
            "sim_ring_phone_number_list", "simRingPhoneNumberList",
            OCI.ReplacementOutgoingDNorSIPURIList, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    incoming_calls: str = Field(type=str, required=False, mutable=False)
    sim_ring_phone_number_list: "OCI.ReplacementOutgoingDNorSIPURIList" = Field(
        type=OCI.ReplacementOutgoingDNorSIPURIList, required=False, mutable=False,
    )


class UserSpeedDial100AddListRequest(OCIRequest):
    """
    Add one or more speed dial 100 settings for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        speed_dial_entry: speedDialEntry
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "speed_dial_entry", "speedDialEntry", OCI.SpeedDial100Entry, is_complex=True,
            is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    speed_dial_entry: "OCI.SpeedDial100Entry" = Field(
        type=OCI.SpeedDial100Entry, required=True, mutable=False,
    )


class UserSpeedDial100ModifyListRequest(OCIRequest):
    """
    Modify the speed dial 100 settings for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        speed_dial_entry: speedDialEntry
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("speed_dial_entry", "speedDialEntry", OCI.SpeedDial100EntryModify, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    speed_dial_entry: "OCI.SpeedDial100EntryModify" = Field(
        type=OCI.SpeedDial100EntryModify, required=False, mutable=False,
    )


class UserSpeedDial8ModifyListRequest(OCIRequest):
    """
    Modify the speed dial 8 settings for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        speed_dial_entry: speedDialEntry
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("speed_dial_entry", "speedDialEntry", OCI.SpeedDial8Entry, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    speed_dial_entry: "OCI.SpeedDial8Entry" = Field(
        type=OCI.SpeedDial8Entry, required=False, mutable=False,
    )


class UserTimeScheduleAddRequest(OCIRequest):
    """
    Add a time schedule for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        time_schedule_name: timeScheduleName
        time_interval01: timeInterval01
        time_interval02: timeInterval02
        time_interval03: timeInterval03
        time_interval04: timeInterval04
        time_interval05: timeInterval05
        time_interval06: timeInterval06
        time_interval07: timeInterval07
        time_interval08: timeInterval08
        time_interval09: timeInterval09
        time_interval10: timeInterval10
        time_interval11: timeInterval11
        time_interval12: timeInterval12
        time_interval13: timeInterval13
        time_interval14: timeInterval14
        time_interval15: timeInterval15
        time_interval16: timeInterval16
        time_interval17: timeInterval17
        time_interval18: timeInterval18
        time_interval19: timeInterval19
        time_interval20: timeInterval20
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
        E("time_interval01", "timeInterval01", OCI.TimeInterval, is_complex=True),
        E("time_interval02", "timeInterval02", OCI.TimeInterval, is_complex=True),
        E("time_interval03", "timeInterval03", OCI.TimeInterval, is_complex=True),
        E("time_interval04", "timeInterval04", OCI.TimeInterval, is_complex=True),
        E("time_interval05", "timeInterval05", OCI.TimeInterval, is_complex=True),
        E("time_interval06", "timeInterval06", OCI.TimeInterval, is_complex=True),
        E("time_interval07", "timeInterval07", OCI.TimeInterval, is_complex=True),
        E("time_interval08", "timeInterval08", OCI.TimeInterval, is_complex=True),
        E("time_interval09", "timeInterval09", OCI.TimeInterval, is_complex=True),
        E("time_interval10", "timeInterval10", OCI.TimeInterval, is_complex=True),
        E("time_interval11", "timeInterval11", OCI.TimeInterval, is_complex=True),
        E("time_interval12", "timeInterval12", OCI.TimeInterval, is_complex=True),
        E("time_interval13", "timeInterval13", OCI.TimeInterval, is_complex=True),
        E("time_interval14", "timeInterval14", OCI.TimeInterval, is_complex=True),
        E("time_interval15", "timeInterval15", OCI.TimeInterval, is_complex=True),
        E("time_interval16", "timeInterval16", OCI.TimeInterval, is_complex=True),
        E("time_interval17", "timeInterval17", OCI.TimeInterval, is_complex=True),
        E("time_interval18", "timeInterval18", OCI.TimeInterval, is_complex=True),
        E("time_interval19", "timeInterval19", OCI.TimeInterval, is_complex=True),
        E("time_interval20", "timeInterval20", OCI.TimeInterval, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    time_schedule_name: str = Field(type=str, required=True, mutable=False)
    time_interval01: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval02: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval03: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval04: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval05: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval06: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval07: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval08: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval09: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval10: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval11: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval12: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval13: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval14: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval15: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval16: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval17: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval18: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval19: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval20: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )


class UserTimeScheduleModifyRequest(OCIRequest):
    """
    Modify a user time schedule.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        time_schedule_name: timeScheduleName
        new_time_schedule_name: newTimeScheduleName
        time_interval01: timeInterval01
        time_interval02: timeInterval02
        time_interval03: timeInterval03
        time_interval04: timeInterval04
        time_interval05: timeInterval05
        time_interval06: timeInterval06
        time_interval07: timeInterval07
        time_interval08: timeInterval08
        time_interval09: timeInterval09
        time_interval10: timeInterval10
        time_interval11: timeInterval11
        time_interval12: timeInterval12
        time_interval13: timeInterval13
        time_interval14: timeInterval14
        time_interval15: timeInterval15
        time_interval16: timeInterval16
        time_interval17: timeInterval17
        time_interval18: timeInterval18
        time_interval19: timeInterval19
        time_interval20: timeInterval20
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("time_schedule_name", "timeScheduleName", str, is_required=True),
        E("new_time_schedule_name", "newTimeScheduleName", str),
        E("time_interval01", "timeInterval01", OCI.TimeInterval, is_complex=True),
        E("time_interval02", "timeInterval02", OCI.TimeInterval, is_complex=True),
        E("time_interval03", "timeInterval03", OCI.TimeInterval, is_complex=True),
        E("time_interval04", "timeInterval04", OCI.TimeInterval, is_complex=True),
        E("time_interval05", "timeInterval05", OCI.TimeInterval, is_complex=True),
        E("time_interval06", "timeInterval06", OCI.TimeInterval, is_complex=True),
        E("time_interval07", "timeInterval07", OCI.TimeInterval, is_complex=True),
        E("time_interval08", "timeInterval08", OCI.TimeInterval, is_complex=True),
        E("time_interval09", "timeInterval09", OCI.TimeInterval, is_complex=True),
        E("time_interval10", "timeInterval10", OCI.TimeInterval, is_complex=True),
        E("time_interval11", "timeInterval11", OCI.TimeInterval, is_complex=True),
        E("time_interval12", "timeInterval12", OCI.TimeInterval, is_complex=True),
        E("time_interval13", "timeInterval13", OCI.TimeInterval, is_complex=True),
        E("time_interval14", "timeInterval14", OCI.TimeInterval, is_complex=True),
        E("time_interval15", "timeInterval15", OCI.TimeInterval, is_complex=True),
        E("time_interval16", "timeInterval16", OCI.TimeInterval, is_complex=True),
        E("time_interval17", "timeInterval17", OCI.TimeInterval, is_complex=True),
        E("time_interval18", "timeInterval18", OCI.TimeInterval, is_complex=True),
        E("time_interval19", "timeInterval19", OCI.TimeInterval, is_complex=True),
        E("time_interval20", "timeInterval20", OCI.TimeInterval, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    time_schedule_name: str = Field(type=str, required=True, mutable=False)
    new_time_schedule_name: str = Field(type=str, required=False, mutable=False)
    time_interval01: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval02: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval03: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval04: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval05: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval06: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval07: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval08: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval09: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval10: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval11: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval12: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval13: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval14: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval15: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval16: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval17: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval18: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval19: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )
    time_interval20: "OCI.TimeInterval" = Field(
        type=OCI.TimeInterval, required=False, mutable=False,
    )


class UserVoiceMessagingUserModifyDistributionListRequest(OCIRequest):
    """
    Modify a voice mail distribution list for a users voice message.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        list_id: listId
        description: description
        phone_number_list: phoneNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("list_id", "listId", int, is_required=True),
        E("description", "description", str),
        E(
            "phone_number_list", "phoneNumberList", OCI.ReplacementOutgoingDNorSIPURIList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    list_id: int = Field(type=int, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    phone_number_list: "OCI.ReplacementOutgoingDNorSIPURIList" = Field(
        type=OCI.ReplacementOutgoingDNorSIPURIList, required=False, mutable=False,
    )


class UserVoiceMessagingUserModifyOutgoingSMDIMWIRequest(OCIRequest):
    """
    Modify the user's voice messaging outgoing message waiting indicator service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        outgoing_smdimwi_phone_number_list: outgoingSMDIMWIPhoneNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E(
            "outgoing_smdimwi_phone_number_list", "outgoingSMDIMWIPhoneNumberList",
            OCI.ReplacementOutgoingDNList, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    outgoing_smdimwi_phone_number_list: "OCI.ReplacementOutgoingDNList" = Field(
        type=OCI.ReplacementOutgoingDNList, required=False, mutable=False,
    )


class UserVoiceMessagingUserModifyVoicePortalRequest(OCIRequest):
    """
    Modify the user's voice messaging voice portal settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Replaced By: ``UserVoiceMessagingUserModifyVoicePortalRequest16()``

    Attributes:
        user_id: userId
        use_personalized_name: usePersonalizedName
        voice_portal_auto_login: voicePortalAutoLogin
        personalized_name_audio_file: personalizedNameAudioFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_personalized_name", "usePersonalizedName", bool),
        E("voice_portal_auto_login", "voicePortalAutoLogin", bool),
        E(
            "personalized_name_audio_file", "personalizedNameAudioFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_personalized_name: bool = Field(type=bool, required=False, mutable=False)
    voice_portal_auto_login: bool = Field(type=bool, required=False, mutable=False)
    personalized_name_audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class UserVoiceMessagingUserModifyVoicePortalRequest16(OCIRequest):
    """
    Modify the user's voice messaging voice portal settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        use_personalized_name: usePersonalizedName
        voice_portal_auto_login: voicePortalAutoLogin
        personalized_name_audio_file: personalizedNameAudioFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_personalized_name", "usePersonalizedName", bool),
        E("voice_portal_auto_login", "voicePortalAutoLogin", bool),
        E(
            "personalized_name_audio_file", "personalizedNameAudioFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_personalized_name: bool = Field(type=bool, required=False, mutable=False)
    voice_portal_auto_login: bool = Field(type=bool, required=False, mutable=False)
    personalized_name_audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )


class UserVoiceMessagingUserModifyVoicePortalRequest20(OCIRequest):
    """
    Modify the user's voice messaging voice portal settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        use_personalized_name: usePersonalizedName
        voice_portal_auto_login: voicePortalAutoLogin
        personalized_name_audio_file: personalizedNameAudioFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_personalized_name", "usePersonalizedName", bool),
        E("voice_portal_auto_login", "voicePortalAutoLogin", bool),
        E(
            "personalized_name_audio_file", "personalizedNameAudioFile",
            OCI.AnnouncementFileLevelKey, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_personalized_name: bool = Field(type=bool, required=False, mutable=False)
    voice_portal_auto_login: bool = Field(type=bool, required=False, mutable=False)
    personalized_name_audio_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )


class EnterpriseBroadWorksMobilityMobileSubscriberDirectoryNumberGetAssignmentListRequest(OCIRequest):
    """
    Request a summary table of all Mobile Subscriber Directory Numbers in an enterprise.

    The response is either
    ``EnterpriseBroadWorksMobilityMobileSubscriberDirectoryNumberGetAssignmentListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_mobile_subscriber_directory_number:
            searchCriteriaMobileSubscriberDirectoryNumber
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_mobile_network: searchCriteriaExactMobileNetwork
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_mobile_subscriber_directory_number",
            "searchCriteriaMobileSubscriberDirectoryNumber",
            OCI.SearchCriteriaMobileSubscriberDirectoryNumber, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_mobile_network", "searchCriteriaExactMobileNetwork",
            OCI.SearchCriteriaExactMobileNetwork, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mobile_subscriber_directory_number: "List[OCI.SearchCriteriaMobileSubscriberDirectoryNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_mobile_network: "OCI.SearchCriteriaExactMobileNetwork" = Field(
        type=OCI.SearchCriteriaExactMobileNetwork, required=False, mutable=False,
    )


class EnterpriseCallCenterAgentThresholdDefaultProfileGetRequest(OCIRequest):
    """
    Gets an existing default Call Center Agent Threshold Profile in an Enterprise.

    If includeAgentsTable is set to true, a table with the list of agents assigned to the
    profile is included in the response.  The search criteria is used to filter the list
    of agents to be included in the table.

    The response is either a
    ``EnterpriseCallCenterAgentThresholdDefaultProfileGetResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        include_agents_table: includeAgentsTable
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("include_agents_table", "includeAgentsTable", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    include_agents_table: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class EnterpriseCallCenterAgentThresholdProfileGetAvailableAgentListRequest(OCIRequest):
    """
    Get the list of all Agents in the Enterprise that can be assigned to a given Call
    Center Agent Threshold Profile in an Enterprise.

    An agent is available to be assigned to a given Agent Threshold Profile if it is a
    Call Center Standard or Call Center Premium agent and the agent is not yet assigned to
    the profile.  The available agent list for a new Call Center Agent Threshold profile
    can be obtained by not setting the excludeAgentsAssignedToProfileName.  When the
    excludeAgentsAssignedToProfileName is specified, all agents already assigned to the
    specified profile are not included in the response, even if the search criterion
    element searchCriteriaAgentThresholdProfile is specified using the same profile name.

    The response is either a
    ``EnterpriseCallCenterAgentThresholdProfileGetAvailableAgentListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        exclude_agents_assigned_to_profile_name: excludeAgentsAssignedToProfileName
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_agent_threshold_profile: searchCriteriaAgentThresholdProfile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "exclude_agents_assigned_to_profile_name",
            "excludeAgentsAssignedToProfileName", str,
        ),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_agent_threshold_profile",
            "searchCriteriaAgentThresholdProfile",
            OCI.SearchCriteriaAgentThresholdProfile, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    exclude_agents_assigned_to_profile_name: str = Field(
        type=str, required=False, mutable=False,
    )
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_agent_threshold_profile: "List[OCI.SearchCriteriaAgentThresholdProfile]" = Field(
        type=list, required=False, mutable=False,
    )


class EnterpriseCallCenterEnhancedReportingScheduledReportGetActiveListRequest(OCIRequest):
    """
    Request to get a list of active enterprise level call center reporting scheduled
    reports.

    The response is either an
    ``EnterpriseCallCenterEnhancedReportingScheduledReportGetActiveListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_call_center_scheduled_report_name:
            searchCriteriaCallCenterScheduledReportName
        search_criteria_exact_call_center_scheduled_report_created_by_supervisor:
            searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
        search_criteria_exact_call_center_report_template_key:
            searchCriteriaExactCallCenterReportTemplateKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_scheduled_report_name: "List[OCI.SearchCriteriaCallCenterScheduledReportName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor: "OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False, mutable=False,
    )
    search_criteria_exact_call_center_report_template_key: "OCI.SearchCriteriaExactCallCenterReportTemplateKey" = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey, required=False,
        mutable=False,
    )


class EnterpriseCallCenterEnhancedReportingScheduledReportGetCompletedListRequest(OCIRequest):
    """
    Request to get a list of completed enterprise level call center reporting scheduled
    reports.

    The response is either an
    ``EnterpriseCallCenterEnhancedReportingScheduledReportGetCompletedListResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_call_center_scheduled_report_name:
            searchCriteriaCallCenterScheduledReportName
        search_criteria_exact_call_center_scheduled_report_created_by_supervisor:
            searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
        search_criteria_exact_call_center_report_template_key:
            searchCriteriaExactCallCenterReportTemplateKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_scheduled_report_name: "List[OCI.SearchCriteriaCallCenterScheduledReportName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor: "OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False, mutable=False,
    )
    search_criteria_exact_call_center_report_template_key: "OCI.SearchCriteriaExactCallCenterReportTemplateKey" = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey, required=False,
        mutable=False,
    )


class EnterpriseCallCenterEnhancedReportingScheduledReportGetListRequest(OCIRequest):
    """
    Request to get a list of enterprise level call center reporting scheduled reports.

    The response is either an
    ``EnterpriseCallCenterEnhancedReportingScheduledReportGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_call_center_scheduled_report_name:
            searchCriteriaCallCenterScheduledReportName
        search_criteria_exact_call_center_scheduled_report_created_by_supervisor:
            searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
        search_criteria_exact_call_center_report_template_key:
            searchCriteriaExactCallCenterReportTemplateKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_scheduled_report_name: "List[OCI.SearchCriteriaCallCenterScheduledReportName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor: "OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False, mutable=False,
    )
    search_criteria_exact_call_center_report_template_key: "OCI.SearchCriteriaExactCallCenterReportTemplateKey" = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey, required=False,
        mutable=False,
    )


class EnterpriseEnhancedCallLogsGetListRequest(OCIRequest):
    """
    Request users' call logs within an enterprise If the callLogType is not specified, all
    types of calls logs (placed, received, missed) are returned.

    It is possible to restrict the number of rows returned using responsePagingControl.
    If responsePagingControl is not specified, the value of Enhanced Call Logs system
    parameter maxNonPagedResponseSize will control the maximum number of call logs can be
    returned.

    The response is either an ``EnterpriseEnhancedCallLogsGetListResponse()`` or an
    ``ErrorResponse()``. Replaced by ``EnterpriseEnhancedCallLogsGetListRequest17sp4()``.
    Originally deprecated in release 20.

    Attributes:
        service_provider_id: serviceProviderId
        call_log_type: callLogType
        group_id: groupId
        user_dn_range: userDnRange
        user_extension_range: userExtensionRange
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("group_id", "groupId", str, is_array=True),
        E("user_dn_range", "userDnRange", OCI.DNRange, is_complex=True, is_array=True),
        E(
            "user_extension_range", "userExtensionRange", OCI.ExtensionRange17,
            is_complex=True, is_array=True,
        ),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    group_id: "List[str]" = Field(type=list, required=False, mutable=False)
    user_dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)
    user_extension_range: "List[OCI.ExtensionRange17]" = Field(
        type=list, required=False, mutable=False,
    )
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.EnhancedCallLogsResponsePagingControl" = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl, required=False, mutable=False,
    )


class EnterpriseEnhancedCallLogsGetListRequest17sp4(OCIRequest):
    """
    Request users' call logs within an enterprise If the callLogType is not specified, all
    types of calls logs (placed, received, missed) are returned.

    It is possible to restrict the number of rows returned using responsePagingControl.
    If responsePagingControl is not specified, the value of Enhanced Call Logs system
    parameter maxNonPagedResponseSize will control the maximum number of call logs can be
    returned.

    The response is either an ``EnterpriseEnhancedCallLogsGetListResponse17sp4()`` or an
    ``ErrorResponse()``. The following elements are only used in AS data mode:
    callAuthorizationCodeFilter

    Attributes:
        service_provider_id: serviceProviderId
        call_log_type: callLogType
        group_id: groupId
        user_dn_range: userDnRange
        user_extension_range: userExtensionRange
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        call_authorization_code_filter: callAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("group_id", "groupId", str, is_array=True),
        E("user_dn_range", "userDnRange", OCI.DNRange, is_complex=True, is_array=True),
        E(
            "user_extension_range", "userExtensionRange", OCI.ExtensionRange17,
            is_complex=True, is_array=True,
        ),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E(
            "call_authorization_code_filter", "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    group_id: "List[str]" = Field(type=list, required=False, mutable=False)
    user_dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)
    user_extension_range: "List[OCI.ExtensionRange17]" = Field(
        type=list, required=False, mutable=False,
    )
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    call_authorization_code_filter: "OCI.EnhancedCallLogsCallAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.EnhancedCallLogsResponsePagingControl" = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl, required=False, mutable=False,
    )


class EnterpriseEnhancedCallLogsGetListRequest20(OCIRequest):
    """
    Request users' call logs within an enterprise If the callLogType is not specified, all
    types of calls logs (placed, received, missed) are returned.

    It is possible to restrict the number of rows returned using responsePagingControl.
    If responsePagingControl is not specified, the value of Enhanced Call Logs system
    parameter maxNonPagedResponseSize will control the maximum number of call logs can be
    returned.

    The response is either an ``EnterpriseEnhancedCallLogsGetListResponse20()`` or an
    ``ErrorResponse()``. The following elements are only used in AS data mode:
    callAuthorizationCodeFilter callSecurityClassification

    Attributes:
        service_provider_id: serviceProviderId
        call_log_type: callLogType
        group_id: groupId
        user_dn_range: userDnRange
        user_extension_range: userExtensionRange
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        call_authorization_code_filter: callAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("group_id", "groupId", str, is_array=True),
        E("user_dn_range", "userDnRange", OCI.DNRange, is_complex=True, is_array=True),
        E(
            "user_extension_range", "userExtensionRange", OCI.ExtensionRange17,
            is_complex=True, is_array=True,
        ),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E(
            "call_authorization_code_filter", "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    group_id: "List[str]" = Field(type=list, required=False, mutable=False)
    user_dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)
    user_extension_range: "List[OCI.ExtensionRange17]" = Field(
        type=list, required=False, mutable=False,
    )
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    call_authorization_code_filter: "OCI.EnhancedCallLogsCallAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.EnhancedCallLogsResponsePagingControl" = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl, required=False, mutable=False,
    )


class EnterpriseEnhancedCallLogsGetListRequest21(OCIRequest):
    """
    Request users' call logs within an enterprise If the callLogType is not specified, all
    types of calls logs (placed, received, missed) are returned.

    It is possible to restrict the number of rows returned using responsePagingControl.
    If responsePagingControl is not specified, the value of Enhanced Call Logs system
    parameter maxNonPagedResponseSize will control the maximum number of call logs can be
    returned.

    The response is either an ``EnterpriseEnhancedCallLogsGetListResponse21()`` or an
    ``ErrorResponse()``. The following elements are only used in AS data mode and ignored
    in HSS data mode: callAuthorizationCodeFilter

    Attributes:
        service_provider_id: serviceProviderId
        call_log_type: callLogType
        group_id: groupId
        user_dn_range: userDnRange
        user_extension_range: userExtensionRange
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        call_authorization_code_filter: callAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("group_id", "groupId", str, is_array=True),
        E("user_dn_range", "userDnRange", OCI.DNRange, is_complex=True, is_array=True),
        E(
            "user_extension_range", "userExtensionRange", OCI.ExtensionRange17,
            is_complex=True, is_array=True,
        ),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter21, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E(
            "call_authorization_code_filter", "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    group_id: "List[str]" = Field(type=list, required=False, mutable=False)
    user_dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)
    user_extension_range: "List[OCI.ExtensionRange17]" = Field(
        type=list, required=False, mutable=False,
    )
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter21" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter21, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    call_authorization_code_filter: "OCI.EnhancedCallLogsCallAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.EnhancedCallLogsResponsePagingControl" = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl, required=False, mutable=False,
    )


class EnterpriseEnterpriseTrunkGetAvailableUserListRequest(OCIRequest):
    """
    Request the list of users that are available to be added to an enterprise trunk.

    This list contains users in the enterprise that are trunk users and not already
    assigned to an enterprise trunk.  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 an ``EnterpriseEnterpriseTrunkGetAvailableUserListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_alternate_trunk_identity: searchCriteriaAlternateTrunkIdentity
        search_criteria_alternate_trunk_identity_domain:
            searchCriteriaAlternateTrunkIdentityDomain
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_alternate_trunk_identity",
            "searchCriteriaAlternateTrunkIdentity",
            OCI.SearchCriteriaAlternateTrunkIdentity, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_alternate_trunk_identity_domain",
            "searchCriteriaAlternateTrunkIdentityDomain",
            OCI.SearchCriteriaAlternateTrunkIdentityDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_alternate_trunk_identity: "List[OCI.SearchCriteriaAlternateTrunkIdentity]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_alternate_trunk_identity_domain: "List[OCI.SearchCriteriaAlternateTrunkIdentityDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class EnterpriseEnterpriseTrunkGetUserListRequest(OCIRequest):
    """
    Request the list of users in an enterprise trunk.

    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 ``EnterpriseEnterpriseTrunkGetUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        enterprise_trunk_name: enterpriseTrunkName
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_alternate_trunk_identity: searchCriteriaAlternateTrunkIdentity
        search_criteria_alternate_trunk_identity_domain:
            searchCriteriaAlternateTrunkIdentityDomain
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_route_list_assigned:
            searchCriteriaExactUserRouteListAssigned
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_alternate_trunk_identity",
            "searchCriteriaAlternateTrunkIdentity",
            OCI.SearchCriteriaAlternateTrunkIdentity, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_alternate_trunk_identity_domain",
            "searchCriteriaAlternateTrunkIdentityDomain",
            OCI.SearchCriteriaAlternateTrunkIdentityDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_route_list_assigned",
            "searchCriteriaExactUserRouteListAssigned",
            OCI.SearchCriteriaExactUserRouteListAssigned, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_alternate_trunk_identity: "List[OCI.SearchCriteriaAlternateTrunkIdentity]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_alternate_trunk_identity_domain: "List[OCI.SearchCriteriaAlternateTrunkIdentityDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_route_list_assigned: "OCI.SearchCriteriaExactUserRouteListAssigned" = Field(
        type=OCI.SearchCriteriaExactUserRouteListAssigned, required=False, mutable=False,
    )


class EnterprisePhoneDirectoryGetListRequest(OCIRequest):
    """
    Request a table containing the phone directory for an enterprise.

    The directory includes all users in the enterprise and all entries in the enterprise
    common phone list.  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 ``EnterprisePhoneDirectoryGetListResponse()`` or
    ``ErrorResponse()``. Replace by: ``EnterprisePhoneDirectoryGetListRequest17()``

    Attributes:
        enterprise_id: enterpriseId
        is_extended_info_requested: isExtendedInfoRequested
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("enterprise_id", "enterpriseId", str, is_required=True),
        E("is_extended_info_requested", "isExtendedInfoRequested", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    enterprise_id: str = Field(type=str, required=True, mutable=False)
    is_extended_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class EnterprisePhoneDirectoryGetListRequest17(OCIRequest):
    """
    Request a table containing the phone directory for an enterprise.

    The directory includes all users in the enterprise and all entries in the enterprise
    common phone list.  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 ``EnterprisePhoneDirectoryGetListResponse17()`` or
    ``ErrorResponse()``. Replaced by: ``EnterprisePhoneDirectoryGetListRequest18()``

    Attributes:
        enterprise_id: enterpriseId
        is_extended_info_requested: isExtendedInfoRequested
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("enterprise_id", "enterpriseId", str, is_required=True),
        E("is_extended_info_requested", "isExtendedInfoRequested", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    enterprise_id: str = Field(type=str, required=True, mutable=False)
    is_extended_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class EnterprisePhoneDirectoryGetListRequest17sp3(OCIRequest):
    """
    Request a table containing the phone directory for an enterprise.

    The directory includes all users in the enterprise and all entries in the enterprise
    common phone list.  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 ``EnterprisePhoneDirectoryGetListResponse17sp3()`` or
    ``ErrorResponse()``. Replaced by: ``EnterprisePhoneDirectoryGetListRequest18()``

    Attributes:
        enterprise_id: enterpriseId
        is_extended_info_requested: isExtendedInfoRequested
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("enterprise_id", "enterpriseId", str, is_required=True),
        E("is_extended_info_requested", "isExtendedInfoRequested", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    enterprise_id: str = Field(type=str, required=True, mutable=False)
    is_extended_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class EnterprisePhoneDirectoryGetListRequest18(OCIRequest):
    """
    Request a table containing the phone directory for an enterprise.

    The directory includes all users in the enterprise and all entries in the enterprise
    common phone list.  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 ``EnterprisePhoneDirectoryGetListResponse18()`` or
    ``ErrorResponse()``.

    Attributes:
        enterprise_id: enterpriseId
        is_extended_info_requested: isExtendedInfoRequested
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("enterprise_id", "enterpriseId", str, is_required=True),
        E("is_extended_info_requested", "isExtendedInfoRequested", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    enterprise_id: str = Field(type=str, required=True, mutable=False)
    is_extended_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class EnterprisePreAlertingAnnouncementModifyRequest(OCIRequest):
    """
    Modify the enterprise level pre-alerting service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        announcement_interruption: announcementInterruption
        interruption_digit_sequence: interruptionDigitSequence
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("announcement_interruption", "announcementInterruption", str),
        E("interruption_digit_sequence", "interruptionDigitSequence", str),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    announcement_interruption: str = Field(type=str, required=False, mutable=False)
    interruption_digit_sequence: str = Field(type=str, required=False, mutable=False)
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class EnterpriseSessionAdmissionControlGroupAddDeviceListRequest(OCIRequest):
    """
    Request to add one or more devices to an enterprise level session admission control
    group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        devices: devices
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E(
            "devices", "devices", OCI.EnterpriseAccessDevice, is_complex=True,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    devices: "OCI.EnterpriseAccessDevice" = Field(
        type=OCI.EnterpriseAccessDevice, required=True, mutable=False,
    )


class EnterpriseSessionAdmissionControlGroupAddRequest(OCIRequest):
    """
    Request to add a session admission control group for the enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        max_session: maxSession
        max_user_originating_sessions: maxUserOriginatingSessions
        max_user_terminating_sessions: maxUserTerminatingSessions
        reserved_session: reservedSession
        reserved_user_originating_sessions: reservedUserOriginatingSessions
        reserved_user_terminating_sessions: reservedUserTerminatingSessions
        become_default_group: becomeDefaultGroup
        count_intra_sac_group_sessions: countIntraSACGroupSessions
        devices: devices
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("max_session", "maxSession", int, is_required=True),
        E("max_user_originating_sessions", "maxUserOriginatingSessions", int),
        E("max_user_terminating_sessions", "maxUserTerminatingSessions", int),
        E("reserved_session", "reservedSession", int, is_required=True),
        E("reserved_user_originating_sessions", "reservedUserOriginatingSessions", int),
        E("reserved_user_terminating_sessions", "reservedUserTerminatingSessions", int),
        E("become_default_group", "becomeDefaultGroup", bool, is_required=True),
        E(
            "count_intra_sac_group_sessions", "countIntraSACGroupSessions", bool,
            is_required=True,
        ),
        E("devices", "devices", OCI.EnterpriseAccessDevice, is_complex=True, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    max_session: int = Field(type=int, required=True, mutable=False)
    max_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_session: int = Field(type=int, required=True, mutable=False)
    reserved_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    become_default_group: bool = Field(type=bool, required=True, mutable=False)
    count_intra_sac_group_sessions: bool = Field(type=bool, required=True, mutable=False)
    devices: "List[OCI.EnterpriseAccessDevice]" = Field(
        type=list, required=False, mutable=False,
    )


class EnterpriseSessionAdmissionControlGroupAddRequest19sp1(OCIRequest):
    """
    Request to add a session admission control group for the enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        max_session: maxSession
        max_user_originating_sessions: maxUserOriginatingSessions
        max_user_terminating_sessions: maxUserTerminatingSessions
        reserved_session: reservedSession
        reserved_user_originating_sessions: reservedUserOriginatingSessions
        reserved_user_terminating_sessions: reservedUserTerminatingSessions
        become_default_group: becomeDefaultGroup
        count_intra_sac_group_sessions: countIntraSACGroupSessions
        devices: devices
        block_emergency_and_repair_calls_due_to_sac_limits:
            blockEmergencyAndRepairCallsDueToSACLimits
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("max_session", "maxSession", int, is_required=True),
        E("max_user_originating_sessions", "maxUserOriginatingSessions", int),
        E("max_user_terminating_sessions", "maxUserTerminatingSessions", int),
        E("reserved_session", "reservedSession", int, is_required=True),
        E("reserved_user_originating_sessions", "reservedUserOriginatingSessions", int),
        E("reserved_user_terminating_sessions", "reservedUserTerminatingSessions", int),
        E("become_default_group", "becomeDefaultGroup", bool, is_required=True),
        E(
            "count_intra_sac_group_sessions", "countIntraSACGroupSessions", bool,
            is_required=True,
        ),
        E("devices", "devices", OCI.EnterpriseAccessDevice, is_complex=True, is_array=True),
        E(
            "block_emergency_and_repair_calls_due_to_sac_limits",
            "blockEmergencyAndRepairCallsDueToSACLimits", bool, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    max_session: int = Field(type=int, required=True, mutable=False)
    max_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_session: int = Field(type=int, required=True, mutable=False)
    reserved_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    become_default_group: bool = Field(type=bool, required=True, mutable=False)
    count_intra_sac_group_sessions: bool = Field(type=bool, required=True, mutable=False)
    devices: "List[OCI.EnterpriseAccessDevice]" = Field(
        type=list, required=False, mutable=False,
    )
    block_emergency_and_repair_calls_due_to_sac_limits: bool = Field(
        type=bool, required=True, mutable=False,
    )


class EnterpriseSessionAdmissionControlGroupDeleteDeviceListRequest(OCIRequest):
    """
    Request to delete one or more devices from an enterprise level session admission
    control group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        devices: devices
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E(
            "devices", "devices", OCI.EnterpriseAccessDevice, is_complex=True,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    devices: "OCI.EnterpriseAccessDevice" = Field(
        type=OCI.EnterpriseAccessDevice, required=True, mutable=False,
    )


class GroupAccessDeviceGetUserListRequest(OCIRequest):
    """
    Requests the configuration of a specified group access device.

    The response is either ``GroupAccessDeviceGetUserListResponse()`` or
    ``ErrorResponse()``. The following elements are only used in HSS data mode and ignored
    in AS data mode: searchCriteriaAccessDeviceEndpointPrivateIdentity

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        device_name: deviceName
        response_size_limit: responseSizeLimit
        search_criteria_line_port_user_part: searchCriteriaLinePortUserPart
        search_criteria_line_port_domain: searchCriteriaLinePortDomain
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_exact_endpoint_type: searchCriteriaExactEndpointType
        search_criteria_exact_user_type: searchCriteriaExactUserType
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_port_number: searchCriteriaExactPortNumber
        search_criteria_access_device_endpoint_private_identity:
            searchCriteriaAccessDeviceEndpointPrivateIdentity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_line_port_user_part", "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_domain", "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_endpoint_type", "searchCriteriaExactEndpointType",
            OCI.SearchCriteriaExactEndpointType, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_type", "searchCriteriaExactUserType",
            OCI.SearchCriteriaExactUserType, is_complex=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_port_number", "searchCriteriaExactPortNumber",
            OCI.SearchCriteriaExactPortNumber, is_complex=True,
        ),
        E(
            "search_criteria_access_device_endpoint_private_identity",
            "searchCriteriaAccessDeviceEndpointPrivateIdentity",
            OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity, is_complex=True,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_line_port_user_part: "List[OCI.SearchCriteriaLinePortUserPart]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_domain: "List[OCI.SearchCriteriaLinePortDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_endpoint_type: "OCI.SearchCriteriaExactEndpointType" = Field(
        type=OCI.SearchCriteriaExactEndpointType, required=False, mutable=False,
    )
    search_criteria_exact_user_type: "OCI.SearchCriteriaExactUserType" = Field(
        type=OCI.SearchCriteriaExactUserType, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_port_number: "OCI.SearchCriteriaExactPortNumber" = Field(
        type=OCI.SearchCriteriaExactPortNumber, required=False, mutable=False,
    )
    search_criteria_access_device_endpoint_private_identity: "List[OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupAccountAuthorizationCodesGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of non restricted users for the account/authorization codes service.

    The response is either
    ``GroupAccountAuthorizationCodesGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupBroadWorksAnywhereAddInstanceRequest(OCIRequest):
    """
    Add a BroadWorks Anywhere instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        broad_works_anywhere_scope: broadWorksAnywhereScope
        prompt_for_clid: promptForCLID
        silent_prompt_mode: silentPromptMode
        prompt_for_passcode: promptForPasscode
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("broad_works_anywhere_scope", "broadWorksAnywhereScope", str, is_required=True),
        E("prompt_for_clid", "promptForCLID", str, is_required=True),
        E("silent_prompt_mode", "silentPromptMode", bool, is_required=True),
        E("prompt_for_passcode", "promptForPasscode", bool, is_required=True),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    broad_works_anywhere_scope: str = Field(type=str, required=True, mutable=False)
    prompt_for_clid: str = Field(type=str, required=True, mutable=False)
    silent_prompt_mode: bool = Field(type=bool, required=True, mutable=False)
    prompt_for_passcode: bool = Field(type=bool, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupBroadWorksAnywhereModifyInstanceRequest(OCIRequest):
    """
    Request to modify a BroadWorks Anywhere instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        broad_works_anywhere_scope: broadWorksAnywhereScope
        prompt_for_clid: promptForCLID
        silent_prompt_mode: silentPromptMode
        prompt_for_passcode: promptForPasscode
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("broad_works_anywhere_scope", "broadWorksAnywhereScope", str),
        E("prompt_for_clid", "promptForCLID", str),
        E("silent_prompt_mode", "silentPromptMode", bool),
        E("prompt_for_passcode", "promptForPasscode", bool),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    broad_works_anywhere_scope: str = Field(type=str, required=False, mutable=False)
    prompt_for_clid: str = Field(type=str, required=False, mutable=False)
    silent_prompt_mode: bool = Field(type=bool, required=False, mutable=False)
    prompt_for_passcode: bool = Field(type=bool, required=False, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupBroadWorksMobilityMobileSubscriberDirectoryNumberGetAssignmentListRequest(OCIRequest):
    """
    Get the list of assigned and unassigned Mobile Subscriber Directory Numbers in a
    group.

    Each DN can be assigned to a user.  . This command is applicable only for group in a
    service provider and will fail for a group in an enterprise.

    The response is either a
    ``GroupBroadWorksMobilityMobileSubscriberDirectoryNumberGetAssignmentListResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_mobile_subscriber_directory_number:
            searchCriteriaMobileSubscriberDirectoryNumber
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_mobile_subscriber_directory_number",
            "searchCriteriaMobileSubscriberDirectoryNumber",
            OCI.SearchCriteriaMobileSubscriberDirectoryNumber, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mobile_subscriber_directory_number: "List[OCI.SearchCriteriaMobileSubscriberDirectoryNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCapacityManagementGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned to a Call Capacity Management group.

    The available user list for a new Call Capacity Management group can be obtained by
    not setting the name.

    The response is either ``GroupCallCapacityManagementGetAvailableUserListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterAddInstanceRequest14(OCIRequest):
    """
    Add a Call Center instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterAddInstanceRequest14sp3()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        enable_video: enableVideo
        queue_length: queueLength
        allow_agent_logoff: allowAgentLogoff
        play_music_on_hold: playMusicOnHold
        play_comfort_message: playComfortMessage
        time_between_comfort_messages_seconds: timeBetweenComfortMessagesSeconds
        enable_guard_timer: enableGuardTimer
        guard_timer_seconds: guardTimerSeconds
        agent_user_id: agentUserId
        allow_call_waiting_for_agents: allowCallWaitingForAgents
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter, is_complex=True, is_required=True,
        ),
        E("policy", "policy", str, is_required=True),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool, is_required=True),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int, is_required=True),
        E("forward_after_timeout", "forwardAfterTimeout", bool, is_required=True),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int, is_required=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("queue_length", "queueLength", int, is_required=True),
        E("allow_agent_logoff", "allowAgentLogoff", bool, is_required=True),
        E("play_music_on_hold", "playMusicOnHold", bool, is_required=True),
        E("play_comfort_message", "playComfortMessage", bool, is_required=True),
        E(
            "time_between_comfort_messages_seconds", "timeBetweenComfortMessagesSeconds",
            int, is_required=True,
        ),
        E("enable_guard_timer", "enableGuardTimer", bool, is_required=True),
        E("guard_timer_seconds", "guardTimerSeconds", int, is_required=True),
        E("agent_user_id", "agentUserId", str, is_array=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileCallCenter" = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter, required=True, mutable=False,
    )
    policy: str = Field(type=str, required=True, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=True, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=True, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=True, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    queue_length: int = Field(type=int, required=True, mutable=False)
    allow_agent_logoff: bool = Field(type=bool, required=True, mutable=False)
    play_music_on_hold: bool = Field(type=bool, required=True, mutable=False)
    play_comfort_message: bool = Field(type=bool, required=True, mutable=False)
    time_between_comfort_messages_seconds: int = Field(type=int, required=True, mutable=False)
    enable_guard_timer: bool = Field(type=bool, required=True, mutable=False)
    guard_timer_seconds: int = Field(type=int, required=True, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)


class GroupCallCenterAddInstanceRequest14sp3(OCIRequest):
    """
    Add a Call Center instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterAddInstanceRequest14sp9()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        enable_video: enableVideo
        queue_length: queueLength
        allow_agent_logoff: allowAgentLogoff
        play_music_on_hold: playMusicOnHold
        play_comfort_message: playComfortMessage
        time_between_comfort_messages_seconds: timeBetweenComfortMessagesSeconds
        enable_guard_timer: enableGuardTimer
        guard_timer_seconds: guardTimerSeconds
        agent_user_id: agentUserId
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        enable_call_queue_when_no_agents_available: enableCallQueueWhenNoAgentsAvailable
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter, is_complex=True, is_required=True,
        ),
        E("policy", "policy", str, is_required=True),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool, is_required=True),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int, is_required=True),
        E("forward_after_timeout", "forwardAfterTimeout", bool, is_required=True),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int, is_required=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("queue_length", "queueLength", int, is_required=True),
        E("allow_agent_logoff", "allowAgentLogoff", bool, is_required=True),
        E("play_music_on_hold", "playMusicOnHold", bool, is_required=True),
        E("play_comfort_message", "playComfortMessage", bool, is_required=True),
        E(
            "time_between_comfort_messages_seconds", "timeBetweenComfortMessagesSeconds",
            int, is_required=True,
        ),
        E("enable_guard_timer", "enableGuardTimer", bool, is_required=True),
        E("guard_timer_seconds", "guardTimerSeconds", int, is_required=True),
        E("agent_user_id", "agentUserId", str, is_array=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool,
            is_required=True,
        ),
        E(
            "enable_call_queue_when_no_agents_available",
            "enableCallQueueWhenNoAgentsAvailable", bool, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileCallCenter" = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter, required=True, mutable=False,
    )
    policy: str = Field(type=str, required=True, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=True, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=True, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=True, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    queue_length: int = Field(type=int, required=True, mutable=False)
    allow_agent_logoff: bool = Field(type=bool, required=True, mutable=False)
    play_music_on_hold: bool = Field(type=bool, required=True, mutable=False)
    play_comfort_message: bool = Field(type=bool, required=True, mutable=False)
    time_between_comfort_messages_seconds: int = Field(type=int, required=True, mutable=False)
    enable_guard_timer: bool = Field(type=bool, required=True, mutable=False)
    guard_timer_seconds: int = Field(type=int, required=True, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=True, mutable=False)
    enable_call_queue_when_no_agents_available: bool = Field(
        type=bool, required=True, mutable=False,
    )


class GroupCallCenterAddInstanceRequest14sp9(OCIRequest):
    """
    Add a Call Center instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterAddInstanceRequest16()``,
    ``GroupCallCenterAddAgentListRequest()``, ``GroupCallCenterModifyPolicyRequest()``,
    ``GroupCallCenterModifyAnnouncementRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        enable_video: enableVideo
        queue_length: queueLength
        allow_agent_logoff: allowAgentLogoff
        play_music_on_hold: playMusicOnHold
        play_comfort_message: playComfortMessage
        time_between_comfort_messages_seconds: timeBetweenComfortMessagesSeconds
        enable_guard_timer: enableGuardTimer
        guard_timer_seconds: guardTimerSeconds
        agent_user_id: agentUserId
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        enable_call_queue_when_no_agents_available: enableCallQueueWhenNoAgentsAvailable
        statistics_source: statisticsSource
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter, is_complex=True, is_required=True,
        ),
        E("policy", "policy", str, is_required=True),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool, is_required=True),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int, is_required=True),
        E("forward_after_timeout", "forwardAfterTimeout", bool, is_required=True),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int, is_required=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("queue_length", "queueLength", int, is_required=True),
        E("allow_agent_logoff", "allowAgentLogoff", bool, is_required=True),
        E("play_music_on_hold", "playMusicOnHold", bool, is_required=True),
        E("play_comfort_message", "playComfortMessage", bool, is_required=True),
        E(
            "time_between_comfort_messages_seconds", "timeBetweenComfortMessagesSeconds",
            int, is_required=True,
        ),
        E("enable_guard_timer", "enableGuardTimer", bool, is_required=True),
        E("guard_timer_seconds", "guardTimerSeconds", int, is_required=True),
        E("agent_user_id", "agentUserId", str, is_array=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E(
            "allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool,
            is_required=True,
        ),
        E(
            "enable_call_queue_when_no_agents_available",
            "enableCallQueueWhenNoAgentsAvailable", bool, is_required=True,
        ),
        E("statistics_source", "statisticsSource", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileCallCenter" = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter, required=True, mutable=False,
    )
    policy: str = Field(type=str, required=True, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=True, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=True, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=True, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    queue_length: int = Field(type=int, required=True, mutable=False)
    allow_agent_logoff: bool = Field(type=bool, required=True, mutable=False)
    play_music_on_hold: bool = Field(type=bool, required=True, mutable=False)
    play_comfort_message: bool = Field(type=bool, required=True, mutable=False)
    time_between_comfort_messages_seconds: int = Field(type=int, required=True, mutable=False)
    enable_guard_timer: bool = Field(type=bool, required=True, mutable=False)
    guard_timer_seconds: int = Field(type=int, required=True, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=True, mutable=False)
    enable_call_queue_when_no_agents_available: bool = Field(
        type=bool, required=True, mutable=False,
    )
    statistics_source: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterAddInstanceRequest16(OCIRequest):
    """
    Add a Call Center instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``GroupCallCenterAddInstanceRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        policy: policy
        enable_video: enableVideo
        queue_length: queueLength
        reporting_server_name: reportingServerName
        allow_caller_to_dial_escape_digit: allowCallerToDialEscapeDigit
        escape_digit: escapeDigit
        reset_call_statistics_upon_entry_in_queue: resetCallStatisticsUponEntryInQueue
        allow_agent_logoff: allowAgentLogoff
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        play_ringing_when_offering_call: playRingingWhenOfferingCall
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter, is_complex=True, is_required=True,
        ),
        E("type", "type", str, is_required=True),
        E("policy", "policy", str, is_required=True),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("queue_length", "queueLength", int, is_required=True),
        E("reporting_server_name", "reportingServerName", str),
        E(
            "allow_caller_to_dial_escape_digit", "allowCallerToDialEscapeDigit", bool,
            is_required=True,
        ),
        E("escape_digit", "escapeDigit", str, is_required=True),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue", bool,
        ),
        E("allow_agent_logoff", "allowAgentLogoff", bool, is_required=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E("allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
        E(
            "external_preferred_audio_codec", "externalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "internal_preferred_audio_codec", "internalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileCallCenter" = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter, required=True, mutable=False,
    )
    type: str = Field(type=str, required=True, mutable=False)
    policy: str = Field(type=str, required=True, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    queue_length: int = Field(type=int, required=True, mutable=False)
    reporting_server_name: str = Field(type=str, required=False, mutable=False)
    allow_caller_to_dial_escape_digit: bool = Field(type=bool, required=True, mutable=False)
    escape_digit: str = Field(type=str, required=True, mutable=False)
    reset_call_statistics_upon_entry_in_queue: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_agent_logoff: bool = Field(type=bool, required=True, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=False, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=False, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=True, mutable=False)


class GroupCallCenterAddInstanceRequest17(OCIRequest):
    """
    Add a Call Center instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        policy: policy
        enable_video: enableVideo
        queue_length: queueLength
        reporting_server_name: reportingServerName
        allow_caller_to_dial_escape_digit: allowCallerToDialEscapeDigit
        escape_digit: escapeDigit
        reset_call_statistics_upon_entry_in_queue: resetCallStatisticsUponEntryInQueue
        allow_agent_logoff: allowAgentLogoff
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
        enable_automatic_state_change_for_agents: enableAutomaticStateChangeForAgents
        agent_state_after_call: agentStateAfterCall
        agent_unavailable_code: agentUnavailableCode
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        play_ringing_when_offering_call: playRingingWhenOfferingCall
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter, is_complex=True, is_required=True,
        ),
        E("type", "type", str, is_required=True),
        E("policy", "policy", str, is_required=True),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("queue_length", "queueLength", int, is_required=True),
        E("reporting_server_name", "reportingServerName", str),
        E(
            "allow_caller_to_dial_escape_digit", "allowCallerToDialEscapeDigit", bool,
            is_required=True,
        ),
        E("escape_digit", "escapeDigit", str, is_required=True),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue", bool,
        ),
        E("allow_agent_logoff", "allowAgentLogoff", bool, is_required=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E("allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents", bool,
        ),
        E("agent_state_after_call", "agentStateAfterCall", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E(
            "external_preferred_audio_codec", "externalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "internal_preferred_audio_codec", "internalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileCallCenter" = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter, required=True, mutable=False,
    )
    type: str = Field(type=str, required=True, mutable=False)
    policy: str = Field(type=str, required=True, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    queue_length: int = Field(type=int, required=True, mutable=False)
    reporting_server_name: str = Field(type=str, required=False, mutable=False)
    allow_caller_to_dial_escape_digit: bool = Field(type=bool, required=True, mutable=False)
    escape_digit: str = Field(type=str, required=True, mutable=False)
    reset_call_statistics_upon_entry_in_queue: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_agent_logoff: bool = Field(type=bool, required=True, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=False, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=False, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)
    enable_automatic_state_change_for_agents: bool = Field(
        type=bool, required=False, mutable=False,
    )
    agent_state_after_call: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=True, mutable=False)


class GroupCallCenterAddInstanceRequest17sp1(OCIRequest):
    """
    Add a Call Center instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``GroupCallCenterAddInstanceRequest17sp3()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        policy: policy
        enable_video: enableVideo
        queue_length: queueLength
        enable_reporting: enableReporting
        reporting_server_name: reportingServerName
        allow_caller_to_dial_escape_digit: allowCallerToDialEscapeDigit
        escape_digit: escapeDigit
        reset_call_statistics_upon_entry_in_queue: resetCallStatisticsUponEntryInQueue
        allow_agent_logoff: allowAgentLogoff
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
        enable_automatic_state_change_for_agents: enableAutomaticStateChangeForAgents
        agent_state_after_call: agentStateAfterCall
        agent_unavailable_code: agentUnavailableCode
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        play_ringing_when_offering_call: playRingingWhenOfferingCall
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter, is_complex=True, is_required=True,
        ),
        E("type", "type", str, is_required=True),
        E("policy", "policy", str, is_required=True),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("queue_length", "queueLength", int, is_required=True),
        E("enable_reporting", "enableReporting", bool),
        E("reporting_server_name", "reportingServerName", str),
        E(
            "allow_caller_to_dial_escape_digit", "allowCallerToDialEscapeDigit", bool,
            is_required=True,
        ),
        E("escape_digit", "escapeDigit", str, is_required=True),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue", bool,
        ),
        E("allow_agent_logoff", "allowAgentLogoff", bool, is_required=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E("allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents", bool,
        ),
        E("agent_state_after_call", "agentStateAfterCall", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E(
            "external_preferred_audio_codec", "externalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "internal_preferred_audio_codec", "internalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileCallCenter" = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter, required=True, mutable=False,
    )
    type: str = Field(type=str, required=True, mutable=False)
    policy: str = Field(type=str, required=True, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    queue_length: int = Field(type=int, required=True, mutable=False)
    enable_reporting: bool = Field(type=bool, required=False, mutable=False)
    reporting_server_name: str = Field(type=str, required=False, mutable=False)
    allow_caller_to_dial_escape_digit: bool = Field(type=bool, required=True, mutable=False)
    escape_digit: str = Field(type=str, required=True, mutable=False)
    reset_call_statistics_upon_entry_in_queue: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_agent_logoff: bool = Field(type=bool, required=True, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=False, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=False, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)
    enable_automatic_state_change_for_agents: bool = Field(
        type=bool, required=False, mutable=False,
    )
    agent_state_after_call: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=True, mutable=False)


class GroupCallCenterAddInstanceRequest17sp3(OCIRequest):
    """
    Add a Call Center instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by
    ``GroupCallCenterAddInstanceRequest19()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        policy: policy
        enable_video: enableVideo
        queue_length: queueLength
        enable_reporting: enableReporting
        reporting_server_name: reportingServerName
        allow_caller_to_dial_escape_digit: allowCallerToDialEscapeDigit
        escape_digit: escapeDigit
        reset_call_statistics_upon_entry_in_queue: resetCallStatisticsUponEntryInQueue
        allow_agent_logoff: allowAgentLogoff
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
        enable_automatic_state_change_for_agents: enableAutomaticStateChangeForAgents
        agent_state_after_call: agentStateAfterCall
        agent_unavailable_code: agentUnavailableCode
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        play_ringing_when_offering_call: playRingingWhenOfferingCall
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter, is_complex=True, is_required=True,
        ),
        E("type", "type", str, is_required=True),
        E("policy", "policy", str, is_required=True),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("queue_length", "queueLength", int, is_required=True),
        E("enable_reporting", "enableReporting", bool),
        E("reporting_server_name", "reportingServerName", str),
        E(
            "allow_caller_to_dial_escape_digit", "allowCallerToDialEscapeDigit", bool,
            is_required=True,
        ),
        E("escape_digit", "escapeDigit", str, is_required=True),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue", bool, is_required=True,
        ),
        E("allow_agent_logoff", "allowAgentLogoff", bool, is_required=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E("allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents", bool,
        ),
        E("agent_state_after_call", "agentStateAfterCall", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E(
            "external_preferred_audio_codec", "externalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "internal_preferred_audio_codec", "internalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileCallCenter" = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter, required=True, mutable=False,
    )
    type: str = Field(type=str, required=True, mutable=False)
    policy: str = Field(type=str, required=True, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    queue_length: int = Field(type=int, required=True, mutable=False)
    enable_reporting: bool = Field(type=bool, required=False, mutable=False)
    reporting_server_name: str = Field(type=str, required=False, mutable=False)
    allow_caller_to_dial_escape_digit: bool = Field(type=bool, required=True, mutable=False)
    escape_digit: str = Field(type=str, required=True, mutable=False)
    reset_call_statistics_upon_entry_in_queue: bool = Field(
        type=bool, required=True, mutable=False,
    )
    allow_agent_logoff: bool = Field(type=bool, required=True, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=False, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=False, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)
    enable_automatic_state_change_for_agents: bool = Field(
        type=bool, required=False, mutable=False,
    )
    agent_state_after_call: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=True, mutable=False)


class GroupCallCenterAddInstanceRequest19(OCIRequest):
    """
    Add a Call Center instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        routing_type: routingType
        policy: policy
        enable_video: enableVideo
        queue_length: queueLength
        enable_reporting: enableReporting
        allow_caller_to_dial_escape_digit: allowCallerToDialEscapeDigit
        escape_digit: escapeDigit
        reset_call_statistics_upon_entry_in_queue: resetCallStatisticsUponEntryInQueue
        allow_agent_logoff: allowAgentLogoff
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
        enable_automatic_state_change_for_agents: enableAutomaticStateChangeForAgents
        agent_state_after_call: agentStateAfterCall
        agent_unavailable_code: agentUnavailableCode
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        play_ringing_when_offering_call: playRingingWhenOfferingCall
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter, is_complex=True, is_required=True,
        ),
        E("type", "type", str, is_required=True),
        E("routing_type", "routingType", str),
        E("policy", "policy", str, is_required=True),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("queue_length", "queueLength", int, is_required=True),
        E("enable_reporting", "enableReporting", bool),
        E(
            "allow_caller_to_dial_escape_digit", "allowCallerToDialEscapeDigit", bool,
            is_required=True,
        ),
        E("escape_digit", "escapeDigit", str, is_required=True),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue", bool, is_required=True,
        ),
        E("allow_agent_logoff", "allowAgentLogoff", bool, is_required=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E("allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents", bool,
        ),
        E("agent_state_after_call", "agentStateAfterCall", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E(
            "external_preferred_audio_codec", "externalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "internal_preferred_audio_codec", "internalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool,
            is_required=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileCallCenter" = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter, required=True, mutable=False,
    )
    type: str = Field(type=str, required=True, mutable=False)
    routing_type: str = Field(type=str, required=False, mutable=False)
    policy: str = Field(type=str, required=True, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    queue_length: int = Field(type=int, required=True, mutable=False)
    enable_reporting: bool = Field(type=bool, required=False, mutable=False)
    allow_caller_to_dial_escape_digit: bool = Field(type=bool, required=True, mutable=False)
    escape_digit: str = Field(type=str, required=True, mutable=False)
    reset_call_statistics_upon_entry_in_queue: bool = Field(
        type=bool, required=True, mutable=False,
    )
    allow_agent_logoff: bool = Field(type=bool, required=True, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=False, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=False, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)
    enable_automatic_state_change_for_agents: bool = Field(
        type=bool, required=False, mutable=False,
    )
    agent_state_after_call: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterAgentThresholdDefaultProfileGetRequest(OCIRequest):
    """
    Gets an existing default Call Center Agent Threshold Profile in a Group.

    If includeAgentsTable is set to true, a table with the list of agents assigned to the
    profile is included in the response.  The search criteria is used to filter the list
    of agents to be included in the table.

    The response is either a ``GroupCallCenterAgentThresholdDefaultProfileGetResponse()``
    or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        include_agents_table: includeAgentsTable
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("include_agents_table", "includeAgentsTable", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    include_agents_table: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterAgentThresholdProfileGetAvailableAgentListRequest(OCIRequest):
    """
    Get the list of all Agents in the Group that can be assigned to a given Call Center
    Agent Threshold Profile in a Group.

    An agent is available to be assigned to a given Agent Threshold Profile if it is a
    Call Center Standard or Call Center Premium agent and the agent is not yet assigned to
    the profile.  The available agent list for a new Call Center Agent Threshold profile
    can be obtained by not setting the excludeAgentsAssignedToProfileName.  When the
    excludeAgentsAssignedToProfileName is specified, all agents already assigned to the
    specified profile are not included in the response, even if the search criterion
    element searchCriteriaAgentThresholdProfile is specified using the same profile name.

    The response is either a
    ``GroupCallCenterAgentThresholdProfileGetAvailableAgentListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        exclude_agents_assigned_to_profile_name: excludeAgentsAssignedToProfileName
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_agent_threshold_profile: searchCriteriaAgentThresholdProfile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "exclude_agents_assigned_to_profile_name",
            "excludeAgentsAssignedToProfileName", str,
        ),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_agent_threshold_profile",
            "searchCriteriaAgentThresholdProfile",
            OCI.SearchCriteriaAgentThresholdProfile, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    exclude_agents_assigned_to_profile_name: str = Field(
        type=str, required=False, mutable=False,
    )
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_agent_threshold_profile: "List[OCI.SearchCriteriaAgentThresholdProfile]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterComfortMessageBypassModifyRequest(OCIRequest):
    """
    Modify a call center's comfort message bypass settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        call_waiting_age_threshold_seconds: callWaitingAgeThresholdSeconds
        play_announcement_after_ringing: playAnnouncementAfterRinging
        ring_time_before_playing_announcement_seconds:
            ringTimeBeforePlayingAnnouncementSeconds
        audio_message_selection: audioMessageSelection
        audio_file: audioFile
        video_message_selection: videoMessageSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("call_waiting_age_threshold_seconds", "callWaitingAgeThresholdSeconds", int),
        E("play_announcement_after_ringing", "playAnnouncementAfterRinging", bool),
        E(
            "ring_time_before_playing_announcement_seconds",
            "ringTimeBeforePlayingAnnouncementSeconds", int,
        ),
        E("audio_message_selection", "audioMessageSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_message_selection", "videoMessageSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    call_waiting_age_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    play_announcement_after_ringing: bool = Field(type=bool, required=False, mutable=False)
    ring_time_before_playing_announcement_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class GroupCallCenterComfortMessageBypassModifyRequest17(OCIRequest):
    """
    Modify a call center's comfort message bypass settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        call_waiting_age_threshold_seconds: callWaitingAgeThresholdSeconds
        play_announcement_after_ringing: playAnnouncementAfterRinging
        ring_time_before_playing_announcement_seconds:
            ringTimeBeforePlayingAnnouncementSeconds
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("call_waiting_age_threshold_seconds", "callWaitingAgeThresholdSeconds", int),
        E("play_announcement_after_ringing", "playAnnouncementAfterRinging", bool),
        E(
            "ring_time_before_playing_announcement_seconds",
            "ringTimeBeforePlayingAnnouncementSeconds", int,
        ),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    call_waiting_age_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    play_announcement_after_ringing: bool = Field(type=bool, required=False, mutable=False)
    ring_time_before_playing_announcement_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupCallCenterComfortMessageBypassModifyRequest20(OCIRequest):
    """
    Modify a call center's comfort message bypass settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        call_waiting_age_threshold_seconds: callWaitingAgeThresholdSeconds
        play_announcement_after_ringing: playAnnouncementAfterRinging
        ring_time_before_playing_announcement_seconds:
            ringTimeBeforePlayingAnnouncementSeconds
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("call_waiting_age_threshold_seconds", "callWaitingAgeThresholdSeconds", int),
        E("play_announcement_after_ringing", "playAnnouncementAfterRinging", bool),
        E(
            "ring_time_before_playing_announcement_seconds",
            "ringTimeBeforePlayingAnnouncementSeconds", int,
        ),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    call_waiting_age_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    play_announcement_after_ringing: bool = Field(type=bool, required=False, mutable=False)
    ring_time_before_playing_announcement_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupCallCenterEnhancedReportingScheduledReportGetActiveListRequest(OCIRequest):
    """
    Request to get a list of active group level call center reporting scheduled reports.

    The response is either a
    ``GroupCallCenterEnhancedReportingScheduledReportGetActiveListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_call_center_scheduled_report_name:
            searchCriteriaCallCenterScheduledReportName
        search_criteria_exact_call_center_scheduled_report_created_by_supervisor:
            searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
        search_criteria_exact_call_center_report_template_key:
            searchCriteriaExactCallCenterReportTemplateKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_scheduled_report_name: "List[OCI.SearchCriteriaCallCenterScheduledReportName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor: "OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False, mutable=False,
    )
    search_criteria_exact_call_center_report_template_key: "OCI.SearchCriteriaExactCallCenterReportTemplateKey" = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey, required=False,
        mutable=False,
    )


class GroupCallCenterEnhancedReportingScheduledReportGetCompletedListRequest(OCIRequest):
    """
    Request to get a list of completed group level call center reporting scheduled
    reports.

    The response is either a
    ``GroupCallCenterEnhancedReportingScheduledReportGetCompletedListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_call_center_scheduled_report_name:
            searchCriteriaCallCenterScheduledReportName
        search_criteria_exact_call_center_scheduled_report_created_by_supervisor:
            searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
        search_criteria_exact_call_center_report_template_key:
            searchCriteriaExactCallCenterReportTemplateKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_scheduled_report_name: "List[OCI.SearchCriteriaCallCenterScheduledReportName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor: "OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False, mutable=False,
    )
    search_criteria_exact_call_center_report_template_key: "OCI.SearchCriteriaExactCallCenterReportTemplateKey" = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey, required=False,
        mutable=False,
    )


class GroupCallCenterEnhancedReportingScheduledReportGetListRequest(OCIRequest):
    """
    Request to get a list of group level call center reporting scheduled reports.

    The response is either a
    ``GroupCallCenterEnhancedReportingScheduledReportGetListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_call_center_scheduled_report_name:
            searchCriteriaCallCenterScheduledReportName
        search_criteria_exact_call_center_scheduled_report_created_by_supervisor:
            searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor
        search_criteria_exact_call_center_report_template_key:
            searchCriteriaExactCallCenterReportTemplateKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_call_center_scheduled_report_name",
            "searchCriteriaCallCenterScheduledReportName",
            OCI.SearchCriteriaCallCenterScheduledReportName, is_complex=True,
            is_array=True,
        ),
        E(
            "search_criteria_exact_call_center_scheduled_report_created_by_supervisor",
            "searchCriteriaExactCallCenterScheduledReportCreatedBySupervisor",
            OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
            is_complex=True,
        ),
        E(
            "search_criteria_exact_call_center_report_template_key",
            "searchCriteriaExactCallCenterReportTemplateKey",
            OCI.SearchCriteriaExactCallCenterReportTemplateKey, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_call_center_scheduled_report_name: "List[OCI.SearchCriteriaCallCenterScheduledReportName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_call_center_scheduled_report_created_by_supervisor: "OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor" = Field(
        type=OCI.SearchCriteriaExactCallCenterScheduledReportCreatedBySupervisor,
        required=False, mutable=False,
    )
    search_criteria_exact_call_center_report_template_key: "OCI.SearchCriteriaExactCallCenterReportTemplateKey" = Field(
        type=OCI.SearchCriteriaExactCallCenterReportTemplateKey, required=False,
        mutable=False,
    )


class GroupCallCenterForcedForwardingModifyRequest(OCIRequest):
    """
    Modify a call center's forced forwarding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        forward_to_phone_number: forwardToPhoneNumber
        allow_enable_via_fac: allowEnableViaFAC
        play_announcement_before_forwarding: playAnnouncementBeforeForwarding
        audio_message_selection: audioMessageSelection
        audio_file: audioFile
        video_message_selection: videoMessageSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("allow_enable_via_fac", "allowEnableViaFAC", bool),
        E("play_announcement_before_forwarding", "playAnnouncementBeforeForwarding", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_message_selection", "videoMessageSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    allow_enable_via_fac: bool = Field(type=bool, required=False, mutable=False)
    play_announcement_before_forwarding: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class GroupCallCenterForcedForwardingModifyRequest17(OCIRequest):
    """
    Modify a call center's forced forwarding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        forward_to_phone_number: forwardToPhoneNumber
        allow_enable_via_fac: allowEnableViaFAC
        play_announcement_before_forwarding: playAnnouncementBeforeForwarding
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("allow_enable_via_fac", "allowEnableViaFAC", bool),
        E("play_announcement_before_forwarding", "playAnnouncementBeforeForwarding", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    allow_enable_via_fac: bool = Field(type=bool, required=False, mutable=False)
    play_announcement_before_forwarding: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupCallCenterForcedForwardingModifyRequest20(OCIRequest):
    """
    Modify a call center's forced forwarding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        forward_to_phone_number: forwardToPhoneNumber
        allow_enable_via_fac: allowEnableViaFAC
        play_announcement_before_forwarding: playAnnouncementBeforeForwarding
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("allow_enable_via_fac", "allowEnableViaFAC", bool),
        E("play_announcement_before_forwarding", "playAnnouncementBeforeForwarding", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    allow_enable_via_fac: bool = Field(type=bool, required=False, mutable=False)
    play_announcement_before_forwarding: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupCallCenterGetAgentListRequest(OCIRequest):
    """
    Get a list of agents assigned to a call center.

    The response is either a ``GroupCallCenterGetAgentListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_skill_level: searchCriteriaExactSkillLevel
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_skill_level", "searchCriteriaExactSkillLevel",
            OCI.SearchCriteriaExactSkillLevel, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_skill_level: "OCI.SearchCriteriaExactSkillLevel" = Field(
        type=OCI.SearchCriteriaExactSkillLevel, required=False, mutable=False,
    )


class GroupCallCenterGetAvailableAgentListRequest(OCIRequest):
    """
    Get a list of users that can be assigned as agents to a given type of Call Center.

    Searching for users by group only makes sense when the call center is part of an
    Enterprise.

    The response is either ``GroupCallCenterGetAvailableAgentListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        call_center_type: callCenterType
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("call_center_type", "callCenterType", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    call_center_type: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterGetAvailableSupervisorListRequest(OCIRequest):
    """
    Get a list of users that can be assigned as supervisors to a Call Center.

    Searching for users by group only makes sense when the call center is part of an
    Enterprise.

    The response is either ``GroupCallCenterGetAvailableSupervisorListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned to a Call Center group.

    Searching for users by group only makes sense when the call center is part of an
    Enterprise.

    The response is either ``GroupCallCenterGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterGetAvailableAgentListRequest()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )


class GroupCallCenterHolidayServiceModifyRequest(OCIRequest):
    """
    Modify a call center's holiday service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        holiday_schedule: holidaySchedule
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_file: audioFile
        video_message_selection: videoMessageSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("holiday_schedule", "holidaySchedule", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_message_selection", "videoMessageSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class GroupCallCenterHolidayServiceModifyRequest17(OCIRequest):
    """
    Modify a call center's holiday service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        holiday_schedule: holidaySchedule
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("holiday_schedule", "holidaySchedule", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupCallCenterHolidayServiceModifyRequest17sp1(OCIRequest):
    """
    Modify a call center's holiday service settings.

    Only Group and Enterprise level schedules are accepted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        holiday_schedule: holidaySchedule
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupCallCenterHolidayServiceModifyRequest20(OCIRequest):
    """
    Modify a call center's holiday service settings.

    Only Group and Enterprise level schedules are accepted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        holiday_schedule: holidaySchedule
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupCallCenterModifyAgentListRequest(OCIRequest):
    """
    Request to modify the agent list for a call center.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. If the
    agentUserIdList is used for Skill Based Premium call centers, the agents will be set
    to skill level 1.

    Attributes:
        service_user_id: serviceUserId
        agent_user_id_list: agentUserIdList
        skilled_agent_user_id_list: skilledAgentUserIdList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "agent_user_id_list", "agentUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
        E(
            "skilled_agent_user_id_list", "skilledAgentUserIdList",
            OCI.CallCenterReplacementSkilledAgents, is_complex=True, is_array=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    agent_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    skilled_agent_user_id_list: "List[OCI.CallCenterReplacementSkilledAgents]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallCenterModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Call Center instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupCallCenterModifyInstanceRequest16()``

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        enable_video: enableVideo
        queue_length: queueLength
        allow_agent_logoff: allowAgentLogoff
        play_music_on_hold: playMusicOnHold
        play_comfort_message: playComfortMessage
        time_between_comfort_messages_seconds: timeBetweenComfortMessagesSeconds
        enable_guard_timer: enableGuardTimer
        guard_timer_seconds: guardTimerSeconds
        agent_user_id_list: agentUserIdList
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        enable_call_queue_when_no_agents_available: enableCallQueueWhenNoAgentsAvailable
        statistics_source: statisticsSource
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("policy", "policy", str),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int),
        E("forward_after_timeout", "forwardAfterTimeout", bool),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("enable_video", "enableVideo", bool),
        E("queue_length", "queueLength", int),
        E("allow_agent_logoff", "allowAgentLogoff", bool),
        E("play_music_on_hold", "playMusicOnHold", bool),
        E("play_comfort_message", "playComfortMessage", bool),
        E("time_between_comfort_messages_seconds", "timeBetweenComfortMessagesSeconds", int),
        E("enable_guard_timer", "enableGuardTimer", bool),
        E("guard_timer_seconds", "guardTimerSeconds", int),
        E(
            "agent_user_id_list", "agentUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
        E("allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool),
        E("allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool),
        E(
            "enable_call_queue_when_no_agents_available",
            "enableCallQueueWhenNoAgentsAvailable", bool,
        ),
        E("statistics_source", "statisticsSource", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    policy: str = Field(type=str, required=False, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=False, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=False, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=False, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=False, mutable=False)
    queue_length: int = Field(type=int, required=False, mutable=False)
    allow_agent_logoff: bool = Field(type=bool, required=False, mutable=False)
    play_music_on_hold: bool = Field(type=bool, required=False, mutable=False)
    play_comfort_message: bool = Field(type=bool, required=False, mutable=False)
    time_between_comfort_messages_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    enable_guard_timer: bool = Field(type=bool, required=False, mutable=False)
    guard_timer_seconds: int = Field(type=int, required=False, mutable=False)
    agent_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    allow_call_waiting_for_agents: bool = Field(type=bool, required=False, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=False, mutable=False)
    enable_call_queue_when_no_agents_available: bool = Field(
        type=bool, required=False, mutable=False,
    )
    statistics_source: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterModifyInstanceRequest16(OCIRequest):
    """
    Request to modify a Call Center instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        policy: policy
        enable_video: enableVideo
        queue_length: queueLength
        reporting_server_name: reportingServerName
        allow_caller_to_dial_escape_digit: allowCallerToDialEscapeDigit
        escape_digit: escapeDigit
        reset_call_statistics_upon_entry_in_queue: resetCallStatisticsUponEntryInQueue
        allow_agent_logoff: allowAgentLogoff
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
        enable_automatic_state_change_for_agents: enableAutomaticStateChangeForAgents
        agent_state_after_call: agentStateAfterCall
        agent_unavailable_code: agentUnavailableCode
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        play_ringing_when_offering_call: playRingingWhenOfferingCall
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("type", "type", str),
        E("policy", "policy", str),
        E("enable_video", "enableVideo", bool),
        E("queue_length", "queueLength", int),
        E("reporting_server_name", "reportingServerName", str),
        E("allow_caller_to_dial_escape_digit", "allowCallerToDialEscapeDigit", bool),
        E("escape_digit", "escapeDigit", str),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue", bool,
        ),
        E("allow_agent_logoff", "allowAgentLogoff", bool),
        E("allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool),
        E("allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents", bool,
        ),
        E("agent_state_after_call", "agentStateAfterCall", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E("external_preferred_audio_codec", "externalPreferredAudioCodec", str),
        E("internal_preferred_audio_codec", "internalPreferredAudioCodec", str),
        E("play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    type: str = Field(type=str, required=False, mutable=False)
    policy: str = Field(type=str, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=False, mutable=False)
    queue_length: int = Field(type=int, required=False, mutable=False)
    reporting_server_name: str = Field(type=str, required=False, mutable=False)
    allow_caller_to_dial_escape_digit: bool = Field(type=bool, required=False, mutable=False)
    escape_digit: str = Field(type=str, required=False, mutable=False)
    reset_call_statistics_upon_entry_in_queue: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_agent_logoff: bool = Field(type=bool, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=False, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=False, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=False, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)
    enable_automatic_state_change_for_agents: bool = Field(
        type=bool, required=False, mutable=False,
    )
    agent_state_after_call: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=False, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=False, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=False, mutable=False)


class GroupCallCenterModifyInstanceRequest17sp1(OCIRequest):
    """
    Request to modify a Call Center instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``GroupCallCenterModifyInstanceRequest19()``

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        policy: policy
        enable_video: enableVideo
        queue_length: queueLength
        enable_reporting: enableReporting
        reporting_server_name: reportingServerName
        allow_caller_to_dial_escape_digit: allowCallerToDialEscapeDigit
        escape_digit: escapeDigit
        reset_call_statistics_upon_entry_in_queue: resetCallStatisticsUponEntryInQueue
        allow_agent_logoff: allowAgentLogoff
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
        enable_automatic_state_change_for_agents: enableAutomaticStateChangeForAgents
        agent_state_after_call: agentStateAfterCall
        agent_unavailable_code: agentUnavailableCode
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        play_ringing_when_offering_call: playRingingWhenOfferingCall
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("type", "type", str),
        E("policy", "policy", str),
        E("enable_video", "enableVideo", bool),
        E("queue_length", "queueLength", int),
        E("enable_reporting", "enableReporting", bool),
        E("reporting_server_name", "reportingServerName", str),
        E("allow_caller_to_dial_escape_digit", "allowCallerToDialEscapeDigit", bool),
        E("escape_digit", "escapeDigit", str),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue", bool,
        ),
        E("allow_agent_logoff", "allowAgentLogoff", bool),
        E("allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool),
        E("allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents", bool,
        ),
        E("agent_state_after_call", "agentStateAfterCall", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E("external_preferred_audio_codec", "externalPreferredAudioCodec", str),
        E("internal_preferred_audio_codec", "internalPreferredAudioCodec", str),
        E("play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    type: str = Field(type=str, required=False, mutable=False)
    policy: str = Field(type=str, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=False, mutable=False)
    queue_length: int = Field(type=int, required=False, mutable=False)
    enable_reporting: bool = Field(type=bool, required=False, mutable=False)
    reporting_server_name: str = Field(type=str, required=False, mutable=False)
    allow_caller_to_dial_escape_digit: bool = Field(type=bool, required=False, mutable=False)
    escape_digit: str = Field(type=str, required=False, mutable=False)
    reset_call_statistics_upon_entry_in_queue: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_agent_logoff: bool = Field(type=bool, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=False, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=False, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=False, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)
    enable_automatic_state_change_for_agents: bool = Field(
        type=bool, required=False, mutable=False,
    )
    agent_state_after_call: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=False, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=False, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=False, mutable=False)


class GroupCallCenterModifyInstanceRequest19(OCIRequest):
    """
    Request to modify a Call Center instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        routing_type: routingType
        policy: policy
        enable_video: enableVideo
        queue_length: queueLength
        enable_reporting: enableReporting
        allow_caller_to_dial_escape_digit: allowCallerToDialEscapeDigit
        escape_digit: escapeDigit
        reset_call_statistics_upon_entry_in_queue: resetCallStatisticsUponEntryInQueue
        allow_agent_logoff: allowAgentLogoff
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        allow_calls_to_agents_in_wrap_up: allowCallsToAgentsInWrapUp
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
        enable_automatic_state_change_for_agents: enableAutomaticStateChangeForAgents
        agent_state_after_call: agentStateAfterCall
        agent_unavailable_code: agentUnavailableCode
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        play_ringing_when_offering_call: playRingingWhenOfferingCall
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("type", "type", str),
        E("routing_type", "routingType", str),
        E("policy", "policy", str),
        E("enable_video", "enableVideo", bool),
        E("queue_length", "queueLength", int),
        E("enable_reporting", "enableReporting", bool),
        E("allow_caller_to_dial_escape_digit", "allowCallerToDialEscapeDigit", bool),
        E("escape_digit", "escapeDigit", str),
        E(
            "reset_call_statistics_upon_entry_in_queue",
            "resetCallStatisticsUponEntryInQueue", bool,
        ),
        E("allow_agent_logoff", "allowAgentLogoff", bool),
        E("allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool),
        E("allow_calls_to_agents_in_wrap_up", "allowCallsToAgentsInWrapUp", bool),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents", bool,
        ),
        E("agent_state_after_call", "agentStateAfterCall", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E("external_preferred_audio_codec", "externalPreferredAudioCodec", str),
        E("internal_preferred_audio_codec", "internalPreferredAudioCodec", str),
        E("play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    type: str = Field(type=str, required=False, mutable=False)
    routing_type: str = Field(type=str, required=False, mutable=False)
    policy: str = Field(type=str, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=False, mutable=False)
    queue_length: int = Field(type=int, required=False, mutable=False)
    enable_reporting: bool = Field(type=bool, required=False, mutable=False)
    allow_caller_to_dial_escape_digit: bool = Field(type=bool, required=False, mutable=False)
    escape_digit: str = Field(type=str, required=False, mutable=False)
    reset_call_statistics_upon_entry_in_queue: bool = Field(
        type=bool, required=False, mutable=False,
    )
    allow_agent_logoff: bool = Field(type=bool, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=False, mutable=False)
    allow_calls_to_agents_in_wrap_up: bool = Field(type=bool, required=False, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=False, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)
    enable_automatic_state_change_for_agents: bool = Field(
        type=bool, required=False, mutable=False,
    )
    agent_state_after_call: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=False, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=False, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=False, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupCallCenterNightServiceModifyRequest(OCIRequest):
    """
    Modify a call center's night service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        business_hours: businessHours
        force_night_service: forceNightService
        allow_manual_override_via_fac: allowManualOverrideViaFAC
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_file: audioFile
        video_message_selection: videoMessageSelection
        video_file: videoFile
        manual_announcement_mode: manualAnnouncementMode
        manual_audio_message_selection: manualAudioMessageSelection
        manual_audio_file: manualAudioFile
        manual_video_message_selection: manualVideoMessageSelection
        manual_video_file: manualVideoFile
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("business_hours", "businessHours", str),
        E("force_night_service", "forceNightService", bool),
        E("allow_manual_override_via_fac", "allowManualOverrideViaFAC", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_message_selection", "videoMessageSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("manual_announcement_mode", "manualAnnouncementMode", str),
        E("manual_audio_message_selection", "manualAudioMessageSelection", str),
        E(
            "manual_audio_file", "manualAudioFile", OCI.ExtendedMediaFileResource,
            is_complex=True,
        ),
        E("manual_video_message_selection", "manualVideoMessageSelection", str),
        E(
            "manual_video_file", "manualVideoFile", OCI.ExtendedMediaFileResource,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    business_hours: str = Field(type=str, required=False, mutable=False)
    force_night_service: bool = Field(type=bool, required=False, mutable=False)
    allow_manual_override_via_fac: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    manual_announcement_mode: str = Field(type=str, required=False, mutable=False)
    manual_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    manual_video_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class GroupCallCenterNightServiceModifyRequest17(OCIRequest):
    """
    Modify a call center's night service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        business_hours: businessHours
        force_night_service: forceNightService
        allow_manual_override_via_fac: allowManualOverrideViaFAC
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
        manual_announcement_mode: manualAnnouncementMode
        manual_audio_message_selection: manualAudioMessageSelection
        manual_audio_url_list: manualAudioUrlList
        manual_audio_file_list: manualAudioFileList
        manual_video_message_selection: manualVideoMessageSelection
        manual_video_url_list: manualVideoUrlList
        manual_video_file_list: manualVideoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("business_hours", "businessHours", str),
        E("force_night_service", "forceNightService", bool),
        E("allow_manual_override_via_fac", "allowManualOverrideViaFAC", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("manual_announcement_mode", "manualAnnouncementMode", str),
        E("manual_audio_message_selection", "manualAudioMessageSelection", str),
        E(
            "manual_audio_url_list", "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_audio_file_list", "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("manual_video_message_selection", "manualVideoMessageSelection", str),
        E(
            "manual_video_url_list", "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_video_file_list", "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    business_hours: str = Field(type=str, required=False, mutable=False)
    force_night_service: bool = Field(type=bool, required=False, mutable=False)
    allow_manual_override_via_fac: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    manual_announcement_mode: str = Field(type=str, required=False, mutable=False)
    manual_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    manual_video_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupCallCenterNightServiceModifyRequest17sp1(OCIRequest):
    """
    Modify a call center's night service settings.

    Only Group and Enterprise level schedules are accepted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        business_hours: businessHours
        force_night_service: forceNightService
        allow_manual_override_via_fac: allowManualOverrideViaFAC
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
        manual_announcement_mode: manualAnnouncementMode
        manual_audio_message_selection: manualAudioMessageSelection
        manual_audio_url_list: manualAudioUrlList
        manual_audio_file_list: manualAudioFileList
        manual_video_message_selection: manualVideoMessageSelection
        manual_video_url_list: manualVideoUrlList
        manual_video_file_list: manualVideoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("force_night_service", "forceNightService", bool),
        E("allow_manual_override_via_fac", "allowManualOverrideViaFAC", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("manual_announcement_mode", "manualAnnouncementMode", str),
        E("manual_audio_message_selection", "manualAudioMessageSelection", str),
        E(
            "manual_audio_url_list", "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_audio_file_list", "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("manual_video_message_selection", "manualVideoMessageSelection", str),
        E(
            "manual_video_url_list", "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_video_file_list", "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    force_night_service: bool = Field(type=bool, required=False, mutable=False)
    allow_manual_override_via_fac: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    manual_announcement_mode: str = Field(type=str, required=False, mutable=False)
    manual_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    manual_video_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupCallCenterNightServiceModifyRequest20(OCIRequest):
    """
    Modify a call center's night service settings.

    Only Group and Enterprise level schedules are accepted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        business_hours: businessHours
        force_night_service: forceNightService
        allow_manual_override_via_fac: allowManualOverrideViaFAC
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
        manual_announcement_mode: manualAnnouncementMode
        manual_audio_message_selection: manualAudioMessageSelection
        manual_audio_url_list: manualAudioUrlList
        manual_audio_file_list: manualAudioFileList
        manual_video_message_selection: manualVideoMessageSelection
        manual_video_url_list: manualVideoUrlList
        manual_video_file_list: manualVideoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("force_night_service", "forceNightService", bool),
        E("allow_manual_override_via_fac", "allowManualOverrideViaFAC", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("manual_announcement_mode", "manualAnnouncementMode", str),
        E("manual_audio_message_selection", "manualAudioMessageSelection", str),
        E(
            "manual_audio_url_list", "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_audio_file_list", "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("manual_video_message_selection", "manualVideoMessageSelection", str),
        E(
            "manual_video_url_list", "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_video_file_list", "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    force_night_service: bool = Field(type=bool, required=False, mutable=False)
    allow_manual_override_via_fac: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    manual_announcement_mode: str = Field(type=str, required=False, mutable=False)
    manual_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    manual_video_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupCallCenterOverflowModifyRequest(OCIRequest):
    """
    Modify a call center's overflow settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        transfer_phone_number: transferPhoneNumber
        overflow_after_timeout: overflowAfterTimeout
        timeout_seconds: timeoutSeconds
        play_announcement_before_overflow_processing:
            playAnnouncementBeforeOverflowProcessing
        audio_message_selection: audioMessageSelection
        audio_file: audioFile
        video_message_selection: videoMessageSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("overflow_after_timeout", "overflowAfterTimeout", bool),
        E("timeout_seconds", "timeoutSeconds", int),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing", bool,
        ),
        E("audio_message_selection", "audioMessageSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_message_selection", "videoMessageSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    overflow_after_timeout: bool = Field(type=bool, required=False, mutable=False)
    timeout_seconds: int = Field(type=int, required=False, mutable=False)
    play_announcement_before_overflow_processing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class GroupCallCenterOverflowModifyRequest17(OCIRequest):
    """
    Modify a call center's overflow settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        transfer_phone_number: transferPhoneNumber
        overflow_after_timeout: overflowAfterTimeout
        timeout_seconds: timeoutSeconds
        play_announcement_before_overflow_processing:
            playAnnouncementBeforeOverflowProcessing
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("overflow_after_timeout", "overflowAfterTimeout", bool),
        E("timeout_seconds", "timeoutSeconds", int),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing", bool,
        ),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    overflow_after_timeout: bool = Field(type=bool, required=False, mutable=False)
    timeout_seconds: int = Field(type=int, required=False, mutable=False)
    play_announcement_before_overflow_processing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupCallCenterOverflowModifyRequest20(OCIRequest):
    """
    Modify a call center's overflow settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        transfer_phone_number: transferPhoneNumber
        overflow_after_timeout: overflowAfterTimeout
        timeout_seconds: timeoutSeconds
        play_announcement_before_overflow_processing:
            playAnnouncementBeforeOverflowProcessing
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("overflow_after_timeout", "overflowAfterTimeout", bool),
        E("timeout_seconds", "timeoutSeconds", int),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing", bool,
        ),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    overflow_after_timeout: bool = Field(type=bool, required=False, mutable=False)
    timeout_seconds: int = Field(type=int, required=False, mutable=False)
    play_announcement_before_overflow_processing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupCallCenterStrandedCallModifyRequest(OCIRequest):
    """
    Modify a call center's stranded call settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        transfer_phone_number: transferPhoneNumber
        audio_message_selection: audioMessageSelection
        audio_file: audioFile
        video_message_selection: videoMessageSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("audio_message_selection", "audioMessageSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_message_selection", "videoMessageSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class GroupCallCenterStrandedCallModifyRequest17(OCIRequest):
    """
    Modify a call center's stranded call settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        transfer_phone_number: transferPhoneNumber
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupCallCenterStrandedCallModifyRequest20(OCIRequest):
    """
    Modify a call center's stranded call settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        transfer_phone_number: transferPhoneNumber
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupCallCenterStrandedCallUnavailableModifyRequest(OCIRequest):
    """
    Modify a call center's stranded calls - unavailable settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        condition_policy_on_number_of_agents_with_specified_unavailable_code:
            conditionPolicyOnNumberOfAgentsWithSpecifiedUnavailableCode
        number_of_agents_with_specified_unavailable_code:
            numberOfAgentsWithSpecifiedUnavailableCode
        agents_unavailable_code: agentsUnavailableCode
        action: action
        transfer_phone_number: transferPhoneNumber
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "condition_policy_on_number_of_agents_with_specified_unavailable_code",
            "conditionPolicyOnNumberOfAgentsWithSpecifiedUnavailableCode", bool,
        ),
        E(
            "number_of_agents_with_specified_unavailable_code",
            "numberOfAgentsWithSpecifiedUnavailableCode", int,
        ),
        E("agents_unavailable_code", "agentsUnavailableCode", str),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    condition_policy_on_number_of_agents_with_specified_unavailable_code: bool = Field(
        type=bool, required=False, mutable=False,
    )
    number_of_agents_with_specified_unavailable_code: int = Field(
        type=int, required=False, mutable=False,
    )
    agents_unavailable_code: str = Field(type=str, required=False, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupCallCenterStrandedCallUnavailableModifyRequest20(OCIRequest):
    """
    Modify a call center's stranded calls - unavailable settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        condition_policy_on_number_of_agents_with_specified_unavailable_code:
            conditionPolicyOnNumberOfAgentsWithSpecifiedUnavailableCode
        number_of_agents_with_specified_unavailable_code:
            numberOfAgentsWithSpecifiedUnavailableCode
        agents_unavailable_code: agentsUnavailableCode
        action: action
        transfer_phone_number: transferPhoneNumber
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "condition_policy_on_number_of_agents_with_specified_unavailable_code",
            "conditionPolicyOnNumberOfAgentsWithSpecifiedUnavailableCode", bool,
        ),
        E(
            "number_of_agents_with_specified_unavailable_code",
            "numberOfAgentsWithSpecifiedUnavailableCode", int,
        ),
        E("agents_unavailable_code", "agentsUnavailableCode", str),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    condition_policy_on_number_of_agents_with_specified_unavailable_code: bool = Field(
        type=bool, required=False, mutable=False,
    )
    number_of_agents_with_specified_unavailable_code: int = Field(
        type=int, required=False, mutable=False,
    )
    agents_unavailable_code: str = Field(type=str, required=False, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupCallParkGetAvailableAlternateRecallUserListRequest(OCIRequest):
    """
    Get a list of hunt groups that are available to select as an alternate recall user.

    The response is either ``GroupCallParkGetAvailableAlternateRecallUserListResponse()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class GroupCallParkGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned to a Call Park group.

    The available user list for a new Call Park group can be obtained by not setting the
    name.

    The response is either ``GroupCallParkGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCallPickupGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned to a Call Pickup group.

    The available user list for a new Call Pickup group can be obtained by not setting the
    name.

    The response is either ``GroupCallPickupGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCollaborateBridgeAddInstanceRequest(OCIRequest):
    """
    Add a collaborate bridge to a group.

    The domain is required in the serviceUserId.  The request fails when supportOutdial is
    enabled and the system-level collaborate supportOutdial setting is disabled.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        maximum_bridge_participants: maximumBridgeParticipants
        network_class_of_service: networkClassOfService
        max_collaborate_room_participants: maxCollaborateRoomParticipants
        support_outdial: supportOutdial
        collaborate_owner_user_id: collaborateOwnerUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E(
            "maximum_bridge_participants", "maximumBridgeParticipants",
            OCI.CollaborateBridgeMaximumParticipants, is_complex=True, is_required=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E(
            "max_collaborate_room_participants", "maxCollaborateRoomParticipants", int,
            is_required=True,
        ),
        E("support_outdial", "supportOutdial", bool, is_required=True),
        E("collaborate_owner_user_id", "collaborateOwnerUserId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    maximum_bridge_participants: "OCI.CollaborateBridgeMaximumParticipants" = Field(
        type=OCI.CollaborateBridgeMaximumParticipants, required=True, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    max_collaborate_room_participants: int = Field(type=int, required=True, mutable=False)
    support_outdial: bool = Field(type=bool, required=True, mutable=False)
    collaborate_owner_user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupCollaborateBridgeGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users with the Collaborate – Audio service assigned that can be assigned
    to a collaborate bridge.

    For an Enterprise Group this will include all users in the group’s enterprise.  The
    SearchCriteriaExactUserGroup parameter is only applicable for enterprise groups.

    The response is either ``GroupCollaborateBridgeGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCollaborateBridgeModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Collaborate bridge.

    The request fails when the collaborateOwnerUserIdList is included in the request for
    the default collaborate bridge.  The request fails when the supportOutdial is included
    in the request and the system-level collaborate supportOutdial setting is disabled.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        maximum_bridge_participants: maximumBridgeParticipants
        network_class_of_service: networkClassOfService
        max_collaborate_room_participants: maxCollaborateRoomParticipants
        support_outdial: supportOutdial
        collaborate_owner_user_id_list: collaborateOwnerUserIdList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E(
            "maximum_bridge_participants", "maximumBridgeParticipants",
            OCI.CollaborateBridgeMaximumParticipants, is_complex=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E("max_collaborate_room_participants", "maxCollaborateRoomParticipants", int),
        E("support_outdial", "supportOutdial", bool),
        E(
            "collaborate_owner_user_id_list", "collaborateOwnerUserIdList",
            OCI.ReplacementUserIdList, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    maximum_bridge_participants: "OCI.CollaborateBridgeMaximumParticipants" = Field(
        type=OCI.CollaborateBridgeMaximumParticipants, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    max_collaborate_room_participants: int = Field(type=int, required=False, mutable=False)
    support_outdial: bool = Field(type=bool, required=False, mutable=False)
    collaborate_owner_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )


class GroupCustomContactDirectoryGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be part of a custom contact directory.

    The response is either ``GroupCustomContactDirectoryGetAvailableUserListResponse()``
    or ``ErrorResponse()``. Replace by:
    ``GroupCustomContactDirectoryGetAvailableUserListRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )


class GroupCustomContactDirectoryGetAvailableUserListRequest17(OCIRequest):
    """
    Get a list of users that can be part of a custom contact directory.

    The response is either ``GroupCustomContactDirectoryGetAvailableUserListResponse17()``
    or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCustomContactDirectoryGetRequest17(OCIRequest):
    """
    Gets a Custom Contact Directory in a group.

    The response is either ``GroupCustomContactDirectoryGetResponse17()`` or
    ``ErrorResponse()``. The search can be done using multiple criterion.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterion are included
    in the results.  If no search criteria is specified, all results are returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``. In all cases, if a responseSizeLimit is specified and the number
    of matching results is more than this limit, then an ``ErrorResponse()`` is returned.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        response_size_limit: responseSizeLimit
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupCustomContactDirectoryModifyRequest17(OCIRequest):
    """
    Adds a Custom Contact Directory to a group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        entry_list: entryList
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E(
            "entry_list", "entryList", OCI.ReplacementCustomContactDirectoryEntryList,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    entry_list: "OCI.ReplacementCustomContactDirectoryEntryList" = Field(
        type=OCI.ReplacementCustomContactDirectoryEntryList, required=False, mutable=False,
    )


class GroupCustomRingbackGroupModifyRequest(OCIRequest):
    """
    Modify the group's custom ring back service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``GroupCustomRingbackGroupModifyRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedFileResource, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedFileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )


class GroupCustomRingbackGroupModifyRequest16(OCIRequest):
    """
    Modify the group's custom ring back service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class GroupCustomRingbackGroupModifyRequest20(OCIRequest):
    """
    Modify the group's custom ring back service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_active: isActive
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource20, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource20, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource20" = Field(
        type=OCI.ExtendedMediaFileResource20, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource20" = Field(
        type=OCI.ExtendedMediaFileResource20, required=False, mutable=False,
    )


class GroupDnGetAssignmentListRequest(OCIRequest):
    """
    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()``. Replaced by: ``GroupDnGetAssignmentListRequest18()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_exact_dn_department: searchCriteriaExactDnDepartment
        search_criteria_exact_dn_activation: searchCriteriaExactDnActivation
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_dn_department", "searchCriteriaExactDnDepartment",
            OCI.SearchCriteriaExactDnDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_dn_activation", "searchCriteriaExactDnActivation",
            OCI.SearchCriteriaExactDnActivation, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_dn_department: "OCI.SearchCriteriaExactDnDepartment" = Field(
        type=OCI.SearchCriteriaExactDnDepartment, required=False, mutable=False,
    )
    search_criteria_exact_dn_activation: "OCI.SearchCriteriaExactDnActivation" = Field(
        type=OCI.SearchCriteriaExactDnActivation, required=False, mutable=False,
    )


class GroupDnGetAssignmentListRequest18(OCIRequest):
    """
    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.  Dns
    assigned to the IMRN pool are not listed in the response.

    The response is either a ``GroupDnGetAssignmentListResponse18()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_exact_dn_department: searchCriteriaExactDnDepartment
        search_criteria_exact_dn_activation: searchCriteriaExactDnActivation
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_dn_department", "searchCriteriaExactDnDepartment",
            OCI.SearchCriteriaExactDnDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_dn_activation", "searchCriteriaExactDnActivation",
            OCI.SearchCriteriaExactDnActivation, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_dn_department: "OCI.SearchCriteriaExactDnDepartment" = Field(
        type=OCI.SearchCriteriaExactDnDepartment, required=False, mutable=False,
    )
    search_criteria_exact_dn_activation: "OCI.SearchCriteriaExactDnActivation" = Field(
        type=OCI.SearchCriteriaExactDnActivation, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupDomainGetAssignedUserListRequest(OCIRequest):
    """
    Request a list of users within in a group that have a given domain assigned.

    The response is either ``GroupDomainGetAssignedUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        domain: domain
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("domain", "domain", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    domain: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupEndpointGetListRequest(OCIRequest):
    """
    Request to search endpoints in the group.

    The response is either ``GroupEndpointGetListResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_line_port_user_part: searchCriteriaLinePortUserPart
        search_criteria_line_port_domain: searchCriteriaLinePortDomain
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_device_type: searchCriteriaDeviceType
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_device_mac_address: searchCriteriaDeviceMACAddress
        search_criteria_device_net_address: searchCriteriaDeviceNetAddress
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_line_port_user_part", "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_domain", "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_type", "searchCriteriaDeviceType",
            OCI.SearchCriteriaDeviceType, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_mac_address", "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_net_address", "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_line_port_user_part: "List[OCI.SearchCriteriaLinePortUserPart]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_domain: "List[OCI.SearchCriteriaLinePortDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_type: "List[OCI.SearchCriteriaDeviceType]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_mac_address: "List[OCI.SearchCriteriaDeviceMACAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_net_address: "List[OCI.SearchCriteriaDeviceNetAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class GroupEnhancedCallLogsGetListRequest(OCIRequest):
    """
    Request users' call logs within a group If the callLogType is not specified, all types
    of calls logs (placed, received, missed) are returned.

    It is possible to restrict the number of rows returned using responsePagingControl.If
    responsePagingControl is not specified, the value of Enhanced Call Logs system
    parameter maxNonPagedResponseSize will control the maximum number of call logs can be
    returned.

    The response is either a ``GroupEnhancedCallLogsGetListResponse()`` or an
    ``ErrorResponse()``. Replaced by ``GroupEnhancedCallLogsGetListRequest17sp4()``.
    Originally deprecated in release 20.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        call_log_type: callLogType
        user_dn_range: userDnRange
        user_extension_range: userExtensionRange
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("user_dn_range", "userDnRange", OCI.DNRange, is_complex=True, is_array=True),
        E(
            "user_extension_range", "userExtensionRange", OCI.ExtensionRange17,
            is_complex=True, is_array=True,
        ),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    user_dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)
    user_extension_range: "List[OCI.ExtensionRange17]" = Field(
        type=list, required=False, mutable=False,
    )
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.EnhancedCallLogsResponsePagingControl" = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl, required=False, mutable=False,
    )


class GroupEnhancedCallLogsGetListRequest17sp4(OCIRequest):
    """
    Request users' call logs within a group If the callLogType is not specified, all types
    of calls logs (placed, received, missed) are returned.

    It is possible to restrict the number of rows returned using responsePagingControl.If
    responsePagingControl is not specified, the value of Enhanced Call Logs system
    parameter maxNonPagedResponseSize will control the maximum number of call logs can be
    returned.

    The response is either a ``GroupEnhancedCallLogsGetListResponse17sp4()`` or an
    ``ErrorResponse()``. The following elements are only used in AS data mode:
    callAuthorizationCodeFilter

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        call_log_type: callLogType
        user_dn_range: userDnRange
        user_extension_range: userExtensionRange
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        call_authorization_code_filter: callAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("user_dn_range", "userDnRange", OCI.DNRange, is_complex=True, is_array=True),
        E(
            "user_extension_range", "userExtensionRange", OCI.ExtensionRange17,
            is_complex=True, is_array=True,
        ),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E(
            "call_authorization_code_filter", "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    user_dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)
    user_extension_range: "List[OCI.ExtensionRange17]" = Field(
        type=list, required=False, mutable=False,
    )
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    call_authorization_code_filter: "OCI.EnhancedCallLogsCallAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.EnhancedCallLogsResponsePagingControl" = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl, required=False, mutable=False,
    )


class GroupEnhancedCallLogsGetListRequest20(OCIRequest):
    """
    Request users' call logs within a group If the callLogType is not specified, all types
    of calls logs (placed, received, missed) are returned.

    It is possible to restrict the number of rows returned using responsePagingControl.If
    responsePagingControl is not specified, the value of Enhanced Call Logs system
    parameter maxNonPagedResponseSize will control the maximum number of call logs can be
    returned.

    The response is either a ``GroupEnhancedCallLogsGetListResponse20()`` or an
    ``ErrorResponse()``. The following elements are only used in AS data mode:
    callAuthorizationCodeFilter callSecurityClassification

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        call_log_type: callLogType
        user_dn_range: userDnRange
        user_extension_range: userExtensionRange
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        call_authorization_code_filter: callAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("user_dn_range", "userDnRange", OCI.DNRange, is_complex=True, is_array=True),
        E(
            "user_extension_range", "userExtensionRange", OCI.ExtensionRange17,
            is_complex=True, is_array=True,
        ),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E(
            "call_authorization_code_filter", "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    user_dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)
    user_extension_range: "List[OCI.ExtensionRange17]" = Field(
        type=list, required=False, mutable=False,
    )
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    call_authorization_code_filter: "OCI.EnhancedCallLogsCallAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.EnhancedCallLogsResponsePagingControl" = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl, required=False, mutable=False,
    )


class GroupEnhancedCallLogsGetListRequest21(OCIRequest):
    """
    Request users' call logs within a group If the callLogType is not specified, all types
    of calls logs (placed, received, missed) are returned.

    It is possible to restrict the number of rows returned using responsePagingControl.If
    responsePagingControl is not specified, the value of Enhanced Call Logs system
    parameter maxNonPagedResponseSize will control the maximum number of call logs can be
    returned.

    The response is either a ``GroupEnhancedCallLogsGetListResponse21()`` or an
    ``ErrorResponse()``. The following elements are only used in AS data mode and ignored
    in HSS data mode: callAuthorizationCodeFilter

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        call_log_type: callLogType
        user_dn_range: userDnRange
        user_extension_range: userExtensionRange
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        call_authorization_code_filter: callAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E("user_dn_range", "userDnRange", OCI.DNRange, is_complex=True, is_array=True),
        E(
            "user_extension_range", "userExtensionRange", OCI.ExtensionRange17,
            is_complex=True, is_array=True,
        ),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter21, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E(
            "call_authorization_code_filter", "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl",
            OCI.EnhancedCallLogsResponsePagingControl, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    user_dn_range: "List[OCI.DNRange]" = Field(type=list, required=False, mutable=False)
    user_extension_range: "List[OCI.ExtensionRange17]" = Field(
        type=list, required=False, mutable=False,
    )
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter21" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter21, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    call_authorization_code_filter: "OCI.EnhancedCallLogsCallAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.EnhancedCallLogsResponsePagingControl" = Field(
        type=OCI.EnhancedCallLogsResponsePagingControl, required=False, mutable=False,
    )


class GroupEnterpriseTrunkGetAvailableUserListRequest(OCIRequest):
    """
    Request the list of users that are available to be added to an enterprise trunk.

    This list contains users in the group that are trunk users and not already assigned to
    an enterprise trunk.  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 ``GroupEnterpriseTrunkGetAvailableUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_alternate_trunk_identity: searchCriteriaAlternateTrunkIdentity
        search_criteria_alternate_trunk_identity_domain:
            searchCriteriaAlternateTrunkIdentityDomain
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_alternate_trunk_identity",
            "searchCriteriaAlternateTrunkIdentity",
            OCI.SearchCriteriaAlternateTrunkIdentity, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_alternate_trunk_identity_domain",
            "searchCriteriaAlternateTrunkIdentityDomain",
            OCI.SearchCriteriaAlternateTrunkIdentityDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_alternate_trunk_identity: "List[OCI.SearchCriteriaAlternateTrunkIdentity]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_alternate_trunk_identity_domain: "List[OCI.SearchCriteriaAlternateTrunkIdentityDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class GroupEnterpriseTrunkGetUserListRequest(OCIRequest):
    """
    Request the list of users in an enterprise trunk.

    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 ``GroupEnterpriseTrunkGetUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        enterprise_trunk_name: enterpriseTrunkName
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_alternate_trunk_identity: searchCriteriaAlternateTrunkIdentity
        search_criteria_alternate_trunk_identity_domain:
            searchCriteriaAlternateTrunkIdentityDomain
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_route_list_assigned:
            searchCriteriaExactUserRouteListAssigned
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("enterprise_trunk_name", "enterpriseTrunkName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_alternate_trunk_identity",
            "searchCriteriaAlternateTrunkIdentity",
            OCI.SearchCriteriaAlternateTrunkIdentity, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_alternate_trunk_identity_domain",
            "searchCriteriaAlternateTrunkIdentityDomain",
            OCI.SearchCriteriaAlternateTrunkIdentityDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_route_list_assigned",
            "searchCriteriaExactUserRouteListAssigned",
            OCI.SearchCriteriaExactUserRouteListAssigned, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    enterprise_trunk_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_alternate_trunk_identity: "List[OCI.SearchCriteriaAlternateTrunkIdentity]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_alternate_trunk_identity_domain: "List[OCI.SearchCriteriaAlternateTrunkIdentityDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_route_list_assigned: "OCI.SearchCriteriaExactUserRouteListAssigned" = Field(
        type=OCI.SearchCriteriaExactUserRouteListAssigned, required=False, mutable=False,
    )


class GroupFindMeFollowMeAddInstanceRequest(OCIRequest):
    """
    Add a Find-me/Follow-me instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupFindMeFollowMeAlertingGroupGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned to a Find-me/Follow-me alerting group.

    The response is either
    ``GroupFindMeFollowMeAlertingGroupGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupFindMeFollowMeModifyAlertingGroupSelectiveCriteriaRequest(OCIRequest):
    """
    Modify a Find-me/Follow-me alerting group criteria.

    For the callToNumbers in the callToNumberList, the extension and number elements are
    not used and the only types accepted for each number are Primary and Alternates.  If
    other type is specified the command fails.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        alerting_group_name: alertingGroupName
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("alerting_group_name", "alertingGroupName", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    alerting_group_name: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class GroupFindMeFollowMeModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Find-me/Follow-me instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupFlexibleSeatingHostAddInstanceRequest(OCIRequest):
    """
    Add a flexible seating host instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        access_device_endpoint: accessDeviceEndpoint
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileFlexibleSeatingHost, is_complex=True,
            is_required=True,
        ),
        E(
            "access_device_endpoint", "accessDeviceEndpoint",
            OCI.AccessDeviceMultipleContactEndpointAdd, is_complex=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileFlexibleSeatingHost" = Field(
        type=OCI.ServiceInstanceAddProfileFlexibleSeatingHost, required=True,
        mutable=False,
    )
    access_device_endpoint: "OCI.AccessDeviceMultipleContactEndpointAdd" = Field(
        type=OCI.AccessDeviceMultipleContactEndpointAdd, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupFlexibleSeatingHostGetInstanceListRequest(OCIRequest):
    """
    Get a list of flexible seating host instances within a group.

    The response is either ``GroupFlexibleSeatingHostGetInstanceListResponse()`` or
    ``ErrorResponse()``. It is possible to get the instances within a specified
    department.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_department_name: groupDepartmentName
        response_size_limit: responseSizeLimit
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_service_instance_name: searchCriteriaServiceInstanceName
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("group_department_name", "groupDepartmentName", str),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_service_instance_name", "searchCriteriaServiceInstanceName",
            OCI.SearchCriteriaServiceInstanceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_department_name: str = Field(type=str, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_service_instance_name: "List[OCI.SearchCriteriaServiceInstanceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupFlexibleSeatingHostModifyInstanceRequest(OCIRequest):
    """
    Request to modify a flexible seating host instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        access_device_endpoint: accessDeviceEndpoint
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfileFlexibleSeatingHost, is_complex=True,
        ),
        E(
            "access_device_endpoint", "accessDeviceEndpoint",
            OCI.AccessDeviceMultipleContactEndpointModify, is_complex=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfileFlexibleSeatingHost" = Field(
        type=OCI.ServiceInstanceModifyProfileFlexibleSeatingHost, required=False,
        mutable=False,
    )
    access_device_endpoint: "OCI.AccessDeviceMultipleContactEndpointModify" = Field(
        type=OCI.AccessDeviceMultipleContactEndpointModify, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupGroupPagingAddInstanceRequest(OCIRequest):
    """
    Add a Group Paging instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        confirmation_tone_timeout_seconds: confirmationToneTimeoutSeconds
        deliver_originator_clid_instead: deliverOriginatorCLIDInstead
        originator_clid_prefix: originatorCLIDPrefix
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E(
            "confirmation_tone_timeout_seconds", "confirmationToneTimeoutSeconds", int,
            is_required=True,
        ),
        E(
            "deliver_originator_clid_instead", "deliverOriginatorCLIDInstead", bool,
            is_required=True,
        ),
        E("originator_clid_prefix", "originatorCLIDPrefix", str),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    confirmation_tone_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    deliver_originator_clid_instead: bool = Field(type=bool, required=True, mutable=False)
    originator_clid_prefix: str = Field(type=str, required=False, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupGroupPagingGetAvailableOriginatorListRequest(OCIRequest):
    """
    Get a list of users that can be assigned as originators to a given paging group.

    Searching for users by group only makes sense when the paging group is part of an
    Enterprise.

    The response is either ``GroupGroupPagingGetAvailableOriginatorListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupGroupPagingGetAvailableTargetListRequest(OCIRequest):
    """
    Get a list of users that can be assigned as targets to a given paging group.

    Searching for users by group only makes sense when the paging group is part of an
    Enterprise.

    The response is either ``GroupGroupPagingGetAvailableTargetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupGroupPagingModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Group Paging instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        confirmation_tone_timeout_seconds: confirmationToneTimeoutSeconds
        deliver_originator_clid_instead: deliverOriginatorCLIDInstead
        originator_clid_prefix: originatorCLIDPrefix
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("confirmation_tone_timeout_seconds", "confirmationToneTimeoutSeconds", int),
        E("deliver_originator_clid_instead", "deliverOriginatorCLIDInstead", bool),
        E("originator_clid_prefix", "originatorCLIDPrefix", str),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    confirmation_tone_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    deliver_originator_clid_instead: bool = Field(type=bool, required=False, mutable=False)
    originator_clid_prefix: str = Field(type=str, required=False, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupHuntGroupAddInstanceRequest14(OCIRequest):
    """
    Add a Hunt Group instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        agent_user_id: agentUserId
        allow_call_waiting_for_agents: allowCallWaitingForAgents
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("policy", "policy", str, is_required=True),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool, is_required=True),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int, is_required=True),
        E("forward_after_timeout", "forwardAfterTimeout", bool, is_required=True),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int, is_required=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("agent_user_id", "agentUserId", str, is_array=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    policy: str = Field(type=str, required=True, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=True, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=True, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=True, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)


class GroupHuntGroupAddInstanceRequest17sp3(OCIRequest):
    """
    Add a Hunt Group instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: useSystemHuntGroupCLIDSetting, use value
    "true" in HSS data mode includeHuntGroupNameInCLID, use value "true" in HSS data mode

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        agent_user_id: agentUserId
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        use_system_hunt_group_clid_setting: useSystemHuntGroupCLIDSetting
        include_hunt_group_name_in_clid: includeHuntGroupNameInCLID
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("policy", "policy", str, is_required=True),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool, is_required=True),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int, is_required=True),
        E("forward_after_timeout", "forwardAfterTimeout", bool, is_required=True),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int, is_required=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("agent_user_id", "agentUserId", str, is_array=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E(
            "use_system_hunt_group_clid_setting", "useSystemHuntGroupCLIDSetting", bool,
            is_required=True,
        ),
        E(
            "include_hunt_group_name_in_clid", "includeHuntGroupNameInCLID", bool,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    policy: str = Field(type=str, required=True, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=True, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=True, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=True, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    use_system_hunt_group_clid_setting: bool = Field(type=bool, required=True, mutable=False)
    include_hunt_group_name_in_clid: bool = Field(type=bool, required=True, mutable=False)


class GroupHuntGroupAddInstanceRequest17sp4(OCIRequest):
    """
    Add a Hunt Group instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: useSystemHuntGroupCLIDSetting, use value
    "true" in HSS data mode includeHuntGroupNameInCLID, use value "true" in HSS data mode

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        agent_user_id: agentUserId
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        use_system_hunt_group_clid_setting: useSystemHuntGroupCLIDSetting
        include_hunt_group_name_in_clid: includeHuntGroupNameInCLID
        enable_not_reachable_forwarding: enableNotReachableForwarding
        not_reachable_forward_to_phone_number: notReachableForwardToPhoneNumber
        make_busy_when_not_reachable: makeBusyWhenNotReachable
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("policy", "policy", str, is_required=True),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool, is_required=True),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int, is_required=True),
        E("forward_after_timeout", "forwardAfterTimeout", bool, is_required=True),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int, is_required=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("agent_user_id", "agentUserId", str, is_array=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E(
            "use_system_hunt_group_clid_setting", "useSystemHuntGroupCLIDSetting", bool,
            is_required=True,
        ),
        E(
            "include_hunt_group_name_in_clid", "includeHuntGroupNameInCLID", bool,
            is_required=True,
        ),
        E(
            "enable_not_reachable_forwarding", "enableNotReachableForwarding", bool,
            is_required=True,
        ),
        E("not_reachable_forward_to_phone_number", "notReachableForwardToPhoneNumber", str),
        E("make_busy_when_not_reachable", "makeBusyWhenNotReachable", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    policy: str = Field(type=str, required=True, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=True, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=True, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=True, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    use_system_hunt_group_clid_setting: bool = Field(type=bool, required=True, mutable=False)
    include_hunt_group_name_in_clid: bool = Field(type=bool, required=True, mutable=False)
    enable_not_reachable_forwarding: bool = Field(type=bool, required=True, mutable=False)
    not_reachable_forward_to_phone_number: str = Field(
        type=str, required=False, mutable=False,
    )
    make_busy_when_not_reachable: bool = Field(type=bool, required=True, mutable=False)


class GroupHuntGroupAddInstanceRequest19(OCIRequest):
    """
    Add a Hunt Group instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: useSystemHuntGroupCLIDSetting, use value
    "true" in HSS data mode includeHuntGroupNameInCLID, use value "true" in HSS data mode

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        agent_user_id: agentUserId
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        use_system_hunt_group_clid_setting: useSystemHuntGroupCLIDSetting
        include_hunt_group_name_in_clid: includeHuntGroupNameInCLID
        enable_not_reachable_forwarding: enableNotReachableForwarding
        not_reachable_forward_to_phone_number: notReachableForwardToPhoneNumber
        make_busy_when_not_reachable: makeBusyWhenNotReachable
        allow_members_to_control_group_busy: allowMembersToControlGroupBusy
        enable_group_busy: enableGroupBusy
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("policy", "policy", str, is_required=True),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool, is_required=True),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int, is_required=True),
        E("forward_after_timeout", "forwardAfterTimeout", bool, is_required=True),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int, is_required=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("agent_user_id", "agentUserId", str, is_array=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E(
            "use_system_hunt_group_clid_setting", "useSystemHuntGroupCLIDSetting", bool,
            is_required=True,
        ),
        E(
            "include_hunt_group_name_in_clid", "includeHuntGroupNameInCLID", bool,
            is_required=True,
        ),
        E(
            "enable_not_reachable_forwarding", "enableNotReachableForwarding", bool,
            is_required=True,
        ),
        E("not_reachable_forward_to_phone_number", "notReachableForwardToPhoneNumber", str),
        E("make_busy_when_not_reachable", "makeBusyWhenNotReachable", bool, is_required=True),
        E(
            "allow_members_to_control_group_busy", "allowMembersToControlGroupBusy", bool,
            is_required=True,
        ),
        E("enable_group_busy", "enableGroupBusy", bool, is_required=True),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    policy: str = Field(type=str, required=True, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=True, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=True, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=True, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    use_system_hunt_group_clid_setting: bool = Field(type=bool, required=True, mutable=False)
    include_hunt_group_name_in_clid: bool = Field(type=bool, required=True, mutable=False)
    enable_not_reachable_forwarding: bool = Field(type=bool, required=True, mutable=False)
    not_reachable_forward_to_phone_number: str = Field(
        type=str, required=False, mutable=False,
    )
    make_busy_when_not_reachable: bool = Field(type=bool, required=True, mutable=False)
    allow_members_to_control_group_busy: bool = Field(type=bool, required=True, mutable=False)
    enable_group_busy: bool = Field(type=bool, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupHuntGroupAddInstanceRequest20(OCIRequest):
    """
    Add a Hunt Group instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: useSystemHuntGroupCLIDSetting, use value
    "true" in HSS data mode includeHuntGroupNameInCLID, use value "true" in HSS data mode

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        agent_user_id: agentUserId
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        use_system_hunt_group_clid_setting: useSystemHuntGroupCLIDSetting
        include_hunt_group_name_in_clid: includeHuntGroupNameInCLID
        enable_not_reachable_forwarding: enableNotReachableForwarding
        not_reachable_forward_to_phone_number: notReachableForwardToPhoneNumber
        make_busy_when_not_reachable: makeBusyWhenNotReachable
        allow_members_to_control_group_busy: allowMembersToControlGroupBusy
        enable_group_busy: enableGroupBusy
        apply_group_busy_when_terminating_to_agent: applyGroupBusyWhenTerminatingToAgent
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("policy", "policy", str, is_required=True),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool, is_required=True),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int, is_required=True),
        E("forward_after_timeout", "forwardAfterTimeout", bool, is_required=True),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int, is_required=True),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("agent_user_id", "agentUserId", str, is_array=True),
        E(
            "allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool,
            is_required=True,
        ),
        E(
            "use_system_hunt_group_clid_setting", "useSystemHuntGroupCLIDSetting", bool,
            is_required=True,
        ),
        E(
            "include_hunt_group_name_in_clid", "includeHuntGroupNameInCLID", bool,
            is_required=True,
        ),
        E(
            "enable_not_reachable_forwarding", "enableNotReachableForwarding", bool,
            is_required=True,
        ),
        E("not_reachable_forward_to_phone_number", "notReachableForwardToPhoneNumber", str),
        E("make_busy_when_not_reachable", "makeBusyWhenNotReachable", bool, is_required=True),
        E(
            "allow_members_to_control_group_busy", "allowMembersToControlGroupBusy", bool,
            is_required=True,
        ),
        E("enable_group_busy", "enableGroupBusy", bool, is_required=True),
        E(
            "apply_group_busy_when_terminating_to_agent",
            "applyGroupBusyWhenTerminatingToAgent", bool, is_required=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    policy: str = Field(type=str, required=True, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=True, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=True, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=True, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    agent_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    allow_call_waiting_for_agents: bool = Field(type=bool, required=True, mutable=False)
    use_system_hunt_group_clid_setting: bool = Field(type=bool, required=True, mutable=False)
    include_hunt_group_name_in_clid: bool = Field(type=bool, required=True, mutable=False)
    enable_not_reachable_forwarding: bool = Field(type=bool, required=True, mutable=False)
    not_reachable_forward_to_phone_number: str = Field(
        type=str, required=False, mutable=False,
    )
    make_busy_when_not_reachable: bool = Field(type=bool, required=True, mutable=False)
    allow_members_to_control_group_busy: bool = Field(type=bool, required=True, mutable=False)
    enable_group_busy: bool = Field(type=bool, required=True, mutable=False)
    apply_group_busy_when_terminating_to_agent: bool = Field(
        type=bool, required=True, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupHuntGroupGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned to a Hunt Group group.

    Searching for users by group only makes sense when the hunt group is part of an
    Enterprise.

    The response is either ``GroupHuntGroupGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupHuntGroupModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Hunt Group instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: useSystemHuntGroupCLIDSetting
    includeHuntGroupNameInCLID

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        policy: policy
        hunt_after_no_answer: huntAfterNoAnswer
        no_answer_number_of_rings: noAnswerNumberOfRings
        forward_after_timeout: forwardAfterTimeout
        forward_timeout_seconds: forwardTimeoutSeconds
        forward_to_phone_number: forwardToPhoneNumber
        agent_user_id_list: agentUserIdList
        allow_call_waiting_for_agents: allowCallWaitingForAgents
        use_system_hunt_group_clid_setting: useSystemHuntGroupCLIDSetting
        include_hunt_group_name_in_clid: includeHuntGroupNameInCLID
        enable_not_reachable_forwarding: enableNotReachableForwarding
        not_reachable_forward_to_phone_number: notReachableForwardToPhoneNumber
        make_busy_when_not_reachable: makeBusyWhenNotReachable
        allow_members_to_control_group_busy: allowMembersToControlGroupBusy
        enable_group_busy: enableGroupBusy
        apply_group_busy_when_terminating_to_agent: applyGroupBusyWhenTerminatingToAgent
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("policy", "policy", str),
        E("hunt_after_no_answer", "huntAfterNoAnswer", bool),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int),
        E("forward_after_timeout", "forwardAfterTimeout", bool),
        E("forward_timeout_seconds", "forwardTimeoutSeconds", int),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E(
            "agent_user_id_list", "agentUserIdList", OCI.ReplacementUserIdList,
            is_complex=True,
        ),
        E("allow_call_waiting_for_agents", "allowCallWaitingForAgents", bool),
        E("use_system_hunt_group_clid_setting", "useSystemHuntGroupCLIDSetting", bool),
        E("include_hunt_group_name_in_clid", "includeHuntGroupNameInCLID", bool),
        E("enable_not_reachable_forwarding", "enableNotReachableForwarding", bool),
        E("not_reachable_forward_to_phone_number", "notReachableForwardToPhoneNumber", str),
        E("make_busy_when_not_reachable", "makeBusyWhenNotReachable", bool),
        E("allow_members_to_control_group_busy", "allowMembersToControlGroupBusy", bool),
        E("enable_group_busy", "enableGroupBusy", bool),
        E(
            "apply_group_busy_when_terminating_to_agent",
            "applyGroupBusyWhenTerminatingToAgent", bool,
        ),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    policy: str = Field(type=str, required=False, mutable=False)
    hunt_after_no_answer: bool = Field(type=bool, required=False, mutable=False)
    no_answer_number_of_rings: int = Field(type=int, required=False, mutable=False)
    forward_after_timeout: bool = Field(type=bool, required=False, mutable=False)
    forward_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    agent_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    allow_call_waiting_for_agents: bool = Field(type=bool, required=False, mutable=False)
    use_system_hunt_group_clid_setting: bool = Field(type=bool, required=False, mutable=False)
    include_hunt_group_name_in_clid: bool = Field(type=bool, required=False, mutable=False)
    enable_not_reachable_forwarding: bool = Field(type=bool, required=False, mutable=False)
    not_reachable_forward_to_phone_number: str = Field(
        type=str, required=False, mutable=False,
    )
    make_busy_when_not_reachable: bool = Field(type=bool, required=False, mutable=False)
    allow_members_to_control_group_busy: bool = Field(
        type=bool, required=False, mutable=False,
    )
    enable_group_busy: bool = Field(type=bool, required=False, mutable=False)
    apply_group_busy_when_terminating_to_agent: bool = Field(
        type=bool, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupIncomingCallingPlanModifyListRequest(OCIRequest):
    """
    Change the group's incoming calling plan settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.IncomingCallingPlanPermissionsModify, is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.IncomingCallingPlanDepartmentPermissionsModify, is_complex=True,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.IncomingCallingPlanPermissionsModify" = Field(
        type=OCI.IncomingCallingPlanPermissionsModify, required=False, mutable=False,
    )
    department_permissions: "List[OCI.IncomingCallingPlanDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupInstantGroupCallAddInstanceRequest14(OCIRequest):
    """
    Request to add an Instant Group Call service instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        destination_phone_number: destinationPhoneNumber
        is_answer_timeout_enabled: isAnswerTimeoutEnabled
        answer_timeout_minutes: answerTimeoutMinutes
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("destination_phone_number", "destinationPhoneNumber", str, is_array=True),
        E("is_answer_timeout_enabled", "isAnswerTimeoutEnabled", bool, is_required=True),
        E("answer_timeout_minutes", "answerTimeoutMinutes", int),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    destination_phone_number: "List[str]" = Field(type=list, required=False, mutable=False)
    is_answer_timeout_enabled: bool = Field(type=bool, required=True, mutable=False)
    answer_timeout_minutes: int = Field(type=int, required=False, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupInstantGroupCallModifyInstanceRequest(OCIRequest):
    """
    Request to modify an Instant Group Call service instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        destination_phone_number_list: destinationPhoneNumberList
        is_answer_timeout_enabled: isAnswerTimeoutEnabled
        answer_timeout_minutes: answerTimeoutMinutes
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E(
            "destination_phone_number_list", "destinationPhoneNumberList",
            OCI.ReplacementOutgoingDNorSIPURIList, is_complex=True,
        ),
        E("is_answer_timeout_enabled", "isAnswerTimeoutEnabled", bool),
        E("answer_timeout_minutes", "answerTimeoutMinutes", int),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    destination_phone_number_list: "OCI.ReplacementOutgoingDNorSIPURIList" = Field(
        type=OCI.ReplacementOutgoingDNorSIPURIList, required=False, mutable=False,
    )
    is_answer_timeout_enabled: bool = Field(type=bool, required=False, mutable=False)
    answer_timeout_minutes: int = Field(type=int, required=False, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupMWIDeliveryToMobileEndpointCustomTemplateAddRequest(OCIRequest):
    """
    Create a MWI Delivery to Mobile Endpoint Custom Template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        language: language
        type: type
        is_enabled: isEnabled
        template_body: templateBody
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("type", "type", str, is_required=True),
        E("is_enabled", "isEnabled", bool, is_required=True),
        E(
            "template_body", "templateBody", OCI.MWIDeliveryToMobileEndpointTemplateBody,
            is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    type: str = Field(type=str, required=True, mutable=False)
    is_enabled: bool = Field(type=bool, required=True, mutable=False)
    template_body: "OCI.MWIDeliveryToMobileEndpointTemplateBody" = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateBody, required=True, mutable=False,
    )


class GroupMWIDeliveryToMobileEndpointCustomTemplateModifyRequest(OCIRequest):
    """
    Modify a MWI Delivery to Mobile Endpoint Custom Template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        language: language
        type: type
        is_enabled: isEnabled
        template_body: templateBody
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("type", "type", str, is_required=True),
        E("is_enabled", "isEnabled", bool),
        E(
            "template_body", "templateBody", OCI.MWIDeliveryToMobileEndpointTemplateBody,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    type: str = Field(type=str, required=True, mutable=False)
    is_enabled: bool = Field(type=bool, required=False, mutable=False)
    template_body: "OCI.MWIDeliveryToMobileEndpointTemplateBody" = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateBody, required=False, mutable=False,
    )


class GroupMeetMeConferencingAddInstanceRequest(OCIRequest):
    """
    Add a Meet-Me Conferencing bridge to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        allocated_ports: allocatedPorts
        network_class_of_service: networkClassOfService
        allow_individual_out_dial: allowIndividualOutDial
        operator_number: operatorNumber
        conference_host_user_id: conferenceHostUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E(
            "allocated_ports", "allocatedPorts", OCI.MeetMeConferencingConferencePorts,
            is_complex=True, is_required=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E("allow_individual_out_dial", "allowIndividualOutDial", bool, is_required=True),
        E("operator_number", "operatorNumber", str),
        E("conference_host_user_id", "conferenceHostUserId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    allocated_ports: "OCI.MeetMeConferencingConferencePorts" = Field(
        type=OCI.MeetMeConferencingConferencePorts, required=True, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    allow_individual_out_dial: bool = Field(type=bool, required=True, mutable=False)
    operator_number: str = Field(type=str, required=False, mutable=False)
    conference_host_user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupMeetMeConferencingAddInstanceRequest18(OCIRequest):
    """
    Add a Meet-Me Conferencing bridge to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        allocated_ports: allocatedPorts
        network_class_of_service: networkClassOfService
        allow_individual_out_dial: allowIndividualOutDial
        operator_number: operatorNumber
        conference_host_user_id: conferenceHostUserId
        play_warning_prompt: playWarningPrompt
        conference_end_warning_prompt_minutes: conferenceEndWarningPromptMinutes
        enable_max_conference_duration: enableMaxConferenceDuration
        max_conference_duration_minutes: maxConferenceDurationMinutes
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E(
            "allocated_ports", "allocatedPorts", OCI.MeetMeConferencingConferencePorts,
            is_complex=True, is_required=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E("allow_individual_out_dial", "allowIndividualOutDial", bool, is_required=True),
        E("operator_number", "operatorNumber", str),
        E("conference_host_user_id", "conferenceHostUserId", str, is_array=True),
        E("play_warning_prompt", "playWarningPrompt", bool, is_required=True),
        E(
            "conference_end_warning_prompt_minutes", "conferenceEndWarningPromptMinutes",
            int, is_required=True,
        ),
        E(
            "enable_max_conference_duration", "enableMaxConferenceDuration", bool,
            is_required=True,
        ),
        E(
            "max_conference_duration_minutes", "maxConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration, is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    allocated_ports: "OCI.MeetMeConferencingConferencePorts" = Field(
        type=OCI.MeetMeConferencingConferencePorts, required=True, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    allow_individual_out_dial: bool = Field(type=bool, required=True, mutable=False)
    operator_number: str = Field(type=str, required=False, mutable=False)
    conference_host_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    play_warning_prompt: bool = Field(type=bool, required=True, mutable=False)
    conference_end_warning_prompt_minutes: int = Field(type=int, required=True, mutable=False)
    enable_max_conference_duration: bool = Field(type=bool, required=True, mutable=False)
    max_conference_duration_minutes: "OCI.MeetMeConferencingConferenceDuration" = Field(
        type=OCI.MeetMeConferencingConferenceDuration, required=True, mutable=False,
    )


class GroupMeetMeConferencingAddInstanceRequest19(OCIRequest):
    """
    Add a Meet-Me Conferencing bridge to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        allocated_ports: allocatedPorts
        network_class_of_service: networkClassOfService
        security_pin_length: securityPinLength
        allow_individual_out_dial: allowIndividualOutDial
        operator_number: operatorNumber
        conference_host_user_id: conferenceHostUserId
        play_warning_prompt: playWarningPrompt
        conference_end_warning_prompt_minutes: conferenceEndWarningPromptMinutes
        enable_max_conference_duration: enableMaxConferenceDuration
        max_conference_duration_minutes: maxConferenceDurationMinutes
        max_scheduled_conference_duration_minutes: maxScheduledConferenceDurationMinutes
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E(
            "allocated_ports", "allocatedPorts", OCI.MeetMeConferencingConferencePorts,
            is_complex=True, is_required=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E("security_pin_length", "securityPinLength", int, is_required=True),
        E("allow_individual_out_dial", "allowIndividualOutDial", bool, is_required=True),
        E("operator_number", "operatorNumber", str),
        E("conference_host_user_id", "conferenceHostUserId", str, is_array=True),
        E("play_warning_prompt", "playWarningPrompt", bool, is_required=True),
        E(
            "conference_end_warning_prompt_minutes", "conferenceEndWarningPromptMinutes",
            int, is_required=True,
        ),
        E(
            "enable_max_conference_duration", "enableMaxConferenceDuration", bool,
            is_required=True,
        ),
        E(
            "max_conference_duration_minutes", "maxConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration, is_complex=True, is_required=True,
        ),
        E(
            "max_scheduled_conference_duration_minutes",
            "maxScheduledConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration, is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    allocated_ports: "OCI.MeetMeConferencingConferencePorts" = Field(
        type=OCI.MeetMeConferencingConferencePorts, required=True, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    security_pin_length: int = Field(type=int, required=True, mutable=False)
    allow_individual_out_dial: bool = Field(type=bool, required=True, mutable=False)
    operator_number: str = Field(type=str, required=False, mutable=False)
    conference_host_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    play_warning_prompt: bool = Field(type=bool, required=True, mutable=False)
    conference_end_warning_prompt_minutes: int = Field(type=int, required=True, mutable=False)
    enable_max_conference_duration: bool = Field(type=bool, required=True, mutable=False)
    max_conference_duration_minutes: "OCI.MeetMeConferencingConferenceDuration" = Field(
        type=OCI.MeetMeConferencingConferenceDuration, required=True, mutable=False,
    )
    max_scheduled_conference_duration_minutes: "OCI.MeetMeConferencingConferenceDuration" = Field(
        type=OCI.MeetMeConferencingConferenceDuration, required=True, mutable=False,
    )


class GroupMeetMeConferencingGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned to a Meet-Me Conferencing bridge.

    Searching for users by group only makes sense when the Meet-Me Conferencing is part of
    an Enterprise.

    The response is either ``GroupMeetMeConferencingGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupMeetMeConferencingModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Meet-Me Conferencing bridge.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        allocated_ports: allocatedPorts
        network_class_of_service: networkClassOfService
        security_pin_length: securityPinLength
        allow_individual_out_dial: allowIndividualOutDial
        operator_number: operatorNumber
        conference_host_user_id_list: conferenceHostUserIdList
        play_warning_prompt: playWarningPrompt
        conference_end_warning_prompt_minutes: conferenceEndWarningPromptMinutes
        enable_max_conference_duration: enableMaxConferenceDuration
        max_conference_duration_minutes: maxConferenceDurationMinutes
        max_scheduled_conference_duration_minutes: maxScheduledConferenceDurationMinutes
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E(
            "allocated_ports", "allocatedPorts", OCI.MeetMeConferencingConferencePorts,
            is_complex=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E("security_pin_length", "securityPinLength", int),
        E("allow_individual_out_dial", "allowIndividualOutDial", bool),
        E("operator_number", "operatorNumber", str),
        E(
            "conference_host_user_id_list", "conferenceHostUserIdList",
            OCI.ReplacementUserIdList, is_complex=True,
        ),
        E("play_warning_prompt", "playWarningPrompt", bool),
        E("conference_end_warning_prompt_minutes", "conferenceEndWarningPromptMinutes", int),
        E("enable_max_conference_duration", "enableMaxConferenceDuration", bool),
        E(
            "max_conference_duration_minutes", "maxConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration, is_complex=True,
        ),
        E(
            "max_scheduled_conference_duration_minutes",
            "maxScheduledConferenceDurationMinutes",
            OCI.MeetMeConferencingConferenceDuration, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    allocated_ports: "OCI.MeetMeConferencingConferencePorts" = Field(
        type=OCI.MeetMeConferencingConferencePorts, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    security_pin_length: int = Field(type=int, required=False, mutable=False)
    allow_individual_out_dial: bool = Field(type=bool, required=False, mutable=False)
    operator_number: str = Field(type=str, required=False, mutable=False)
    conference_host_user_id_list: "OCI.ReplacementUserIdList" = Field(
        type=OCI.ReplacementUserIdList, required=False, mutable=False,
    )
    play_warning_prompt: bool = Field(type=bool, required=False, mutable=False)
    conference_end_warning_prompt_minutes: int = Field(
        type=int, required=False, mutable=False,
    )
    enable_max_conference_duration: bool = Field(type=bool, required=False, mutable=False)
    max_conference_duration_minutes: "OCI.MeetMeConferencingConferenceDuration" = Field(
        type=OCI.MeetMeConferencingConferenceDuration, required=False, mutable=False,
    )
    max_scheduled_conference_duration_minutes: "OCI.MeetMeConferencingConferenceDuration" = Field(
        type=OCI.MeetMeConferencingConferenceDuration, required=False, mutable=False,
    )


class GroupMusicOnHoldAddInstanceRequest14(OCIRequest):
    """
    Add a Music On Hold Instance to a department.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: GroupMusicOnHoldAddInstanceRequest14Sp4

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        message_selection: messageSelection
        access_device_endpoint: accessDeviceEndpoint
        audio_file: audioFile
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True, is_required=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool, is_required=True),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool, is_required=True),
        E("message_selection", "messageSelection", str, is_required=True),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointAdd,
            is_complex=True,
        ),
        E("audio_file", "audioFile", OCI.LabeledFileResource, is_complex=True),
        E("video_file", "videoFile", OCI.LabeledFileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=True, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=True, mutable=False)
    message_selection: str = Field(type=str, required=True, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointAdd" = Field(
        type=OCI.AccessDeviceEndpointAdd, required=False, mutable=False,
    )
    audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class GroupMusicOnHoldAddInstanceRequest14sp4(OCIRequest):
    """
    Add a Music On Hold Instance to a department.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        message_selection: messageSelection
        access_device_endpoint: accessDeviceEndpoint
        audio_file: audioFile
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True, is_required=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool, is_required=True),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool, is_required=True),
        E(
            "is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool,
            is_required=True,
        ),
        E("message_selection", "messageSelection", str, is_required=True),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointAdd,
            is_complex=True,
        ),
        E("audio_file", "audioFile", OCI.LabeledFileResource, is_complex=True),
        E("video_file", "videoFile", OCI.LabeledFileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=True, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=True, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=True, mutable=False)
    message_selection: str = Field(type=str, required=True, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointAdd" = Field(
        type=OCI.AccessDeviceEndpointAdd, required=False, mutable=False,
    )
    audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class GroupMusicOnHoldModifyInstanceRequest14(OCIRequest):
    """
    Modify data for a group or department Music On Hold Instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        department: department
        is_active_during_call_hold: isActiveDuringCallHold
        is_active_during_call_park: isActiveDuringCallPark
        is_active_during_busy_camp_on: isActiveDuringBusyCampOn
        message_selection: messageSelection
        access_device_endpoint: accessDeviceEndpoint
        audio_file: audioFile
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("is_active_during_call_hold", "isActiveDuringCallHold", bool),
        E("is_active_during_call_park", "isActiveDuringCallPark", bool),
        E("is_active_during_busy_camp_on", "isActiveDuringBusyCampOn", bool),
        E("message_selection", "messageSelection", str),
        E(
            "access_device_endpoint", "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointModify, is_complex=True,
        ),
        E("audio_file", "audioFile", OCI.LabeledFileResource, is_complex=True),
        E("video_file", "videoFile", OCI.LabeledFileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    is_active_during_call_hold: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_call_park: bool = Field(type=bool, required=False, mutable=False)
    is_active_during_busy_camp_on: bool = Field(type=bool, required=False, mutable=False)
    message_selection: str = Field(type=str, required=False, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointModify" = Field(
        type=OCI.AccessDeviceEndpointModify, required=False, mutable=False,
    )
    audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )


class GroupNetworkClassOfServiceGetAssignedUserListRequest(OCIRequest):
    """
    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()``. Replaced by:
    ``GroupNetworkClassOfServiceGetAssignedUserListRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        network_class_of_service: networkClassOfService
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupNetworkClassOfServiceGetAssignedUserListRequest21(OCIRequest):
    """
    Get a list of users within a group that have a given Network Class of Service
    assigned.

    The response is either a ``GroupNetworkClassOfServiceGetAssignedUserListResponse21()``
    or an ``ErorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        network_class_of_service: networkClassOfService
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("network_class_of_service", "networkClassOfService", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    network_class_of_service: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOfficeZoneGetAssignedUserListRequest(OCIRequest):
    """
    Get a list of users within a group that have a given Office Zone assigned.

    The response is either a ``GroupOfficeZoneGetAssignedUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        office_zone_name: officeZoneName
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("office_zone_name", "officeZoneName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    office_zone_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanCallMeNowModifyListRequest(OCIRequest):
    """
    Modify the Call Me Now call permissions for a group default and it's departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingCallingPlanCallMeNowPermissionsModify, is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingCallingPlanCallMeNowDepartmentPermissionsModify, is_complex=True,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingCallingPlanCallMeNowPermissionsModify" = Field(
        type=OCI.OutgoingCallingPlanCallMeNowPermissionsModify, required=False,
        mutable=False,
    )
    department_permissions: "List[OCI.OutgoingCallingPlanCallMeNowDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanOriginatingModifyListRequest(OCIRequest):
    """
    Modify the originating permissions for a group default and it's departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingCallingPlanOriginatingPermissionsModify, is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingCallingPlanOriginatingDepartmentPermissionsModify,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingCallingPlanOriginatingPermissionsModify" = Field(
        type=OCI.OutgoingCallingPlanOriginatingPermissionsModify, required=False,
        mutable=False,
    )
    department_permissions: "List[OCI.OutgoingCallingPlanOriginatingDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanRedirectedModifyListRequest(OCIRequest):
    """
    Modify the call forwarded/transferred permissions for a group default and it's
    departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingCallingPlanRedirectedPermissionsModify, is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingCallingPlanRedirectedDepartmentPermissionsModify, is_complex=True,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingCallingPlanRedirectedPermissionsModify" = Field(
        type=OCI.OutgoingCallingPlanRedirectedPermissionsModify, required=False,
        mutable=False,
    )
    department_permissions: "List[OCI.OutgoingCallingPlanRedirectedDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanRedirectingModifyListRequest(OCIRequest):
    """
    Modify the initiating call forwards/transfer permissions for a group default and it's
    departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingCallingPlanRedirectingPermissionsModify, is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingCallingPlanRedirectingDepartmentPermissionsModify,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingCallingPlanRedirectingPermissionsModify" = Field(
        type=OCI.OutgoingCallingPlanRedirectingPermissionsModify, required=False,
        mutable=False,
    )
    department_permissions: "List[OCI.OutgoingCallingPlanRedirectingDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanTransferNumbersModifyListRequest(OCIRequest):
    """
    Modify the list of transfer numbers for a group default and it's departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_numbers: groupNumbers
        department_numbers: departmentNumbers
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_numbers", "groupNumbers", OCI.OutgoingCallingPlanTransferNumbersModify,
            is_complex=True,
        ),
        E(
            "department_numbers", "departmentNumbers",
            OCI.OutgoingCallingPlanDepartmentTransferNumbersModify, is_complex=True,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_numbers: "OCI.OutgoingCallingPlanTransferNumbersModify" = Field(
        type=OCI.OutgoingCallingPlanTransferNumbersModify, required=False, mutable=False,
    )
    department_numbers: "List[OCI.OutgoingCallingPlanDepartmentTransferNumbersModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupPhoneDirectoryGetListRequest(OCIRequest):
    """
    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()``. Replace by: ``GroupPhoneDirectoryGetListRequest17()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_extended_info_requested: isExtendedInfoRequested
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_extended_info_requested", "isExtendedInfoRequested", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_extended_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class GroupPhoneDirectoryGetListRequest17(OCIRequest):
    """
    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 ``GroupPhoneDirectoryGetListResponse17()`` or
    ``ErrorResponse()``. Replaced by: ``GroupPhoneDirectoryGetListRequest18()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_extended_info_requested: isExtendedInfoRequested
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_extended_info_requested", "isExtendedInfoRequested", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_extended_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class GroupPhoneDirectoryGetListRequest17sp3(OCIRequest):
    """
    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 ``GroupPhoneDirectoryGetListResponse17sp3()`` or
    ``ErrorResponse()``. Replaced by: ``GroupPhoneDirectoryGetListRequest18()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_extended_info_requested: isExtendedInfoRequested
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_extended_info_requested", "isExtendedInfoRequested", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_extended_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupPhoneDirectoryGetListRequest18(OCIRequest):
    """
    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 ``GroupPhoneDirectoryGetListResponse18()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        is_extended_info_requested: isExtendedInfoRequested
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("is_extended_info_requested", "isExtendedInfoRequested", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    is_extended_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupPreAlertingAnnouncementModifyRequest(OCIRequest):
    """
    Modify the group level pre-alerting service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        announcement_interruption: announcementInterruption
        interruption_digit_sequence: interruptionDigitSequence
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("announcement_interruption", "announcementInterruption", str),
        E("interruption_digit_sequence", "interruptionDigitSequence", str),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    announcement_interruption: str = Field(type=str, required=False, mutable=False)
    interruption_digit_sequence: str = Field(type=str, required=False, mutable=False)
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class GroupPreAlertingAnnouncementModifyRequest20(OCIRequest):
    """
    Modify the group level pre-alerting service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        announcement_interruption: announcementInterruption
        interruption_digit_sequence: interruptionDigitSequence
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("announcement_interruption", "announcementInterruption", str),
        E("interruption_digit_sequence", "interruptionDigitSequence", str),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource20, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource20, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    announcement_interruption: str = Field(type=str, required=False, mutable=False)
    interruption_digit_sequence: str = Field(type=str, required=False, mutable=False)
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource20" = Field(
        type=OCI.ExtendedMediaFileResource20, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource20" = Field(
        type=OCI.ExtendedMediaFileResource20, required=False, mutable=False,
    )


class GroupRoutePointAddInstanceRequest(OCIRequest):
    """
    Add a Route Point instance to a group.

    The Route Point is a Call Center queue that performs the same function but allows an
    external system to perform the distribution of calls instead of making those decisions
    itself.  The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        network_class_of_service: networkClassOfService
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        queue_length: queueLength
        no_answer_timeout_rings: noAnswerTimeoutRings
        enable_video: enableVideo
        play_ringing_when_offering_call: playRingingWhenOfferingCall
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        enable_automatic_state_change_for_agents: enableAutomaticStateChangeForAgents
        agent_state_after_call: agentStateAfterCall
        agent_unavailable_code: agentUnavailableCode
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileCallCenter, is_complex=True, is_required=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E(
            "external_preferred_audio_codec", "externalPreferredAudioCodec", str,
            is_required=True,
        ),
        E(
            "internal_preferred_audio_codec", "internalPreferredAudioCodec", str,
            is_required=True,
        ),
        E("queue_length", "queueLength", int, is_required=True),
        E("no_answer_timeout_rings", "noAnswerTimeoutRings", int, is_required=True),
        E("enable_video", "enableVideo", bool, is_required=True),
        E(
            "play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool,
            is_required=True,
        ),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool, is_required=True),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents", bool, is_required=True,
        ),
        E("agent_state_after_call", "agentStateAfterCall", str, is_required=True),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool, is_required=True),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileCallCenter" = Field(
        type=OCI.ServiceInstanceAddProfileCallCenter, required=True, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=True, mutable=False)
    queue_length: int = Field(type=int, required=True, mutable=False)
    no_answer_timeout_rings: int = Field(type=int, required=True, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=True, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=True, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    enable_automatic_state_change_for_agents: bool = Field(
        type=bool, required=True, mutable=False,
    )
    agent_state_after_call: str = Field(type=str, required=True, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=True, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)


class GroupRoutePointForcedForwardingModifyRequest(OCIRequest):
    """
    Modify a route point's forced forwarding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        forward_to_phone_number: forwardToPhoneNumber
        play_announcement_before_forwarding: playAnnouncementBeforeForwarding
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("play_announcement_before_forwarding", "playAnnouncementBeforeForwarding", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_forwarding: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupRoutePointForcedForwardingModifyRequest20(OCIRequest):
    """
    Modify a route point's forced forwarding settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        is_active: isActive
        forward_to_phone_number: forwardToPhoneNumber
        play_announcement_before_forwarding: playAnnouncementBeforeForwarding
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("play_announcement_before_forwarding", "playAnnouncementBeforeForwarding", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_forwarding: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupRoutePointHolidayServiceModifyRequest(OCIRequest):
    """
    Modify a route point's holiday service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        holiday_schedule: holidaySchedule
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("holiday_schedule", "holidaySchedule", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupRoutePointHolidayServiceModifyRequest17sp1(OCIRequest):
    """
    Modify a route point's holiday service settings.

    Only Group and Enterprise level schedules are accepted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        holiday_schedule: holidaySchedule
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupRoutePointHolidayServiceModifyRequest20(OCIRequest):
    """
    Modify a route point's holiday service settings.

    Only Group and Enterprise level schedules are accepted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        holiday_schedule: holidaySchedule
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupRoutePointModifyInstanceRequest(OCIRequest):
    """
    Request to modify a Route Point instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        network_class_of_service: networkClassOfService
        external_preferred_audio_codec: externalPreferredAudioCodec
        internal_preferred_audio_codec: internalPreferredAudioCodec
        queue_length: queueLength
        no_answer_timeout_rings: noAnswerTimeoutRings
        enable_video: enableVideo
        play_ringing_when_offering_call: playRingingWhenOfferingCall
        override_agent_wrap_up_time: overrideAgentWrapUpTime
        wrap_up_seconds: wrapUpSeconds
        enable_automatic_state_change_for_agents: enableAutomaticStateChangeForAgents
        agent_state_after_call: agentStateAfterCall
        agent_unavailable_code: agentUnavailableCode
        force_delivery_of_calls: forceDeliveryOfCalls
        force_delivery_wait_time_seconds: forceDeliveryWaitTimeSeconds
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E("external_preferred_audio_codec", "externalPreferredAudioCodec", str),
        E("internal_preferred_audio_codec", "internalPreferredAudioCodec", str),
        E("queue_length", "queueLength", int),
        E("no_answer_timeout_rings", "noAnswerTimeoutRings", int),
        E("enable_video", "enableVideo", bool),
        E("play_ringing_when_offering_call", "playRingingWhenOfferingCall", bool),
        E("override_agent_wrap_up_time", "overrideAgentWrapUpTime", bool),
        E("wrap_up_seconds", "wrapUpSeconds", int),
        E(
            "enable_automatic_state_change_for_agents",
            "enableAutomaticStateChangeForAgents", bool,
        ),
        E("agent_state_after_call", "agentStateAfterCall", str),
        E("agent_unavailable_code", "agentUnavailableCode", str),
        E("force_delivery_of_calls", "forceDeliveryOfCalls", bool),
        E("force_delivery_wait_time_seconds", "forceDeliveryWaitTimeSeconds", int),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    external_preferred_audio_codec: str = Field(type=str, required=False, mutable=False)
    internal_preferred_audio_codec: str = Field(type=str, required=False, mutable=False)
    queue_length: int = Field(type=int, required=False, mutable=False)
    no_answer_timeout_rings: int = Field(type=int, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=False, mutable=False)
    play_ringing_when_offering_call: bool = Field(type=bool, required=False, mutable=False)
    override_agent_wrap_up_time: bool = Field(type=bool, required=False, mutable=False)
    wrap_up_seconds: int = Field(type=int, required=False, mutable=False)
    enable_automatic_state_change_for_agents: bool = Field(
        type=bool, required=False, mutable=False,
    )
    agent_state_after_call: str = Field(type=str, required=False, mutable=False)
    agent_unavailable_code: str = Field(type=str, required=False, mutable=False)
    force_delivery_of_calls: bool = Field(type=bool, required=False, mutable=False)
    force_delivery_wait_time_seconds: int = Field(type=int, required=False, mutable=False)


class GroupRoutePointNightServiceModifyRequest(OCIRequest):
    """
    Modify a route point's night service settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        business_hours: businessHours
        force_night_service: forceNightService
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
        manual_announcement_mode: manualAnnouncementMode
        manual_audio_message_selection: manualAudioMessageSelection
        manual_audio_url_list: manualAudioUrlList
        manual_audio_file_list: manualAudioFileList
        manual_video_message_selection: manualVideoMessageSelection
        manual_video_url_list: manualVideoUrlList
        manual_video_file_list: manualVideoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("business_hours", "businessHours", str),
        E("force_night_service", "forceNightService", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("manual_announcement_mode", "manualAnnouncementMode", str),
        E("manual_audio_message_selection", "manualAudioMessageSelection", str),
        E(
            "manual_audio_url_list", "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_audio_file_list", "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("manual_video_message_selection", "manualVideoMessageSelection", str),
        E(
            "manual_video_url_list", "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_video_file_list", "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    business_hours: str = Field(type=str, required=False, mutable=False)
    force_night_service: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    manual_announcement_mode: str = Field(type=str, required=False, mutable=False)
    manual_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    manual_video_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupRoutePointNightServiceModifyRequest17sp1(OCIRequest):
    """
    Modify a route point's night service settings.

    Only Group and Enterprise level schedules are accepted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        business_hours: businessHours
        force_night_service: forceNightService
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
        manual_announcement_mode: manualAnnouncementMode
        manual_audio_message_selection: manualAudioMessageSelection
        manual_audio_url_list: manualAudioUrlList
        manual_audio_file_list: manualAudioFileList
        manual_video_message_selection: manualVideoMessageSelection
        manual_video_url_list: manualVideoUrlList
        manual_video_file_list: manualVideoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("force_night_service", "forceNightService", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("manual_announcement_mode", "manualAnnouncementMode", str),
        E("manual_audio_message_selection", "manualAudioMessageSelection", str),
        E(
            "manual_audio_url_list", "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_audio_file_list", "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("manual_video_message_selection", "manualVideoMessageSelection", str),
        E(
            "manual_video_url_list", "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_video_file_list", "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    force_night_service: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    manual_announcement_mode: str = Field(type=str, required=False, mutable=False)
    manual_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    manual_video_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupRoutePointNightServiceModifyRequest20(OCIRequest):
    """
    Modify a route point's night service settings.

    Only Group and Enterprise level schedules are accepted.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        business_hours: businessHours
        force_night_service: forceNightService
        transfer_phone_number: transferPhoneNumber
        play_announcement_before_action: playAnnouncementBeforeAction
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
        manual_announcement_mode: manualAnnouncementMode
        manual_audio_message_selection: manualAudioMessageSelection
        manual_audio_url_list: manualAudioUrlList
        manual_audio_file_list: manualAudioFileList
        manual_video_message_selection: manualVideoMessageSelection
        manual_video_url_list: manualVideoUrlList
        manual_video_file_list: manualVideoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("force_night_service", "forceNightService", bool),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("play_announcement_before_action", "playAnnouncementBeforeAction", bool),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("manual_announcement_mode", "manualAnnouncementMode", str),
        E("manual_audio_message_selection", "manualAudioMessageSelection", str),
        E(
            "manual_audio_url_list", "manualAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_audio_file_list", "manualAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("manual_video_message_selection", "manualVideoMessageSelection", str),
        E(
            "manual_video_url_list", "manualVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "manual_video_file_list", "manualVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    force_night_service: bool = Field(type=bool, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    play_announcement_before_action: bool = Field(type=bool, required=False, mutable=False)
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    manual_announcement_mode: str = Field(type=str, required=False, mutable=False)
    manual_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    manual_video_message_selection: str = Field(type=str, required=False, mutable=False)
    manual_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    manual_video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupRoutePointOverflowModifyRequest(OCIRequest):
    """
    Modify a route point's overflow settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        transfer_phone_number: transferPhoneNumber
        overflow_after_timeout: overflowAfterTimeout
        timeout_seconds: timeoutSeconds
        play_announcement_before_overflow_processing:
            playAnnouncementBeforeOverflowProcessing
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("overflow_after_timeout", "overflowAfterTimeout", bool),
        E("timeout_seconds", "timeoutSeconds", int),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing", bool,
        ),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList", OCI.CallCenterAnnouncementFileListModify,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    overflow_after_timeout: bool = Field(type=bool, required=False, mutable=False)
    timeout_seconds: int = Field(type=int, required=False, mutable=False)
    play_announcement_before_overflow_processing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )


class GroupRoutePointOverflowModifyRequest20(OCIRequest):
    """
    Modify a route point's overflow settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        action: action
        transfer_phone_number: transferPhoneNumber
        overflow_after_timeout: overflowAfterTimeout
        timeout_seconds: timeoutSeconds
        play_announcement_before_overflow_processing:
            playAnnouncementBeforeOverflowProcessing
        audio_message_selection: audioMessageSelection
        audio_url_list: audioUrlList
        audio_file_list: audioFileList
        video_message_selection: videoMessageSelection
        video_url_list: videoUrlList
        video_file_list: videoFileList
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("action", "action", str),
        E("transfer_phone_number", "transferPhoneNumber", str),
        E("overflow_after_timeout", "overflowAfterTimeout", bool),
        E("timeout_seconds", "timeoutSeconds", int),
        E(
            "play_announcement_before_overflow_processing",
            "playAnnouncementBeforeOverflowProcessing", bool,
        ),
        E("audio_message_selection", "audioMessageSelection", str),
        E(
            "audio_url_list", "audioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "audio_file_list", "audioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("video_message_selection", "videoMessageSelection", str),
        E(
            "video_url_list", "videoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "video_file_list", "videoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    action: str = Field(type=str, required=False, mutable=False)
    transfer_phone_number: str = Field(type=str, required=False, mutable=False)
    overflow_after_timeout: bool = Field(type=bool, required=False, mutable=False)
    timeout_seconds: int = Field(type=int, required=False, mutable=False)
    play_announcement_before_overflow_processing: bool = Field(
        type=bool, required=False, mutable=False,
    )
    audio_message_selection: str = Field(type=str, required=False, mutable=False)
    audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    video_message_selection: str = Field(type=str, required=False, mutable=False)
    video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )


class GroupSeriesCompletionGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned to a Series Completion group.

    The available user list for a new Series Completion group can be obtained by not
    setting the name.

    The response is either ``GroupSeriesCompletionGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=False, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupServiceModifyAuthorizationListRequest(OCIRequest):
    """
    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()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_pack_authorization: servicePackAuthorization
        group_service_authorization: groupServiceAuthorization
        user_service_authorization: userServiceAuthorization
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "service_pack_authorization", "servicePackAuthorization",
            OCI.ServicePackAuthorization, is_complex=True, is_array=True,
        ),
        E(
            "group_service_authorization", "groupServiceAuthorization",
            OCI.GroupServiceAuthorization, is_complex=True, is_array=True,
        ),
        E(
            "user_service_authorization", "userServiceAuthorization",
            OCI.UserServiceAuthorization, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_pack_authorization: "List[OCI.ServicePackAuthorization]" = Field(
        type=list, required=False, mutable=False,
    )
    group_service_authorization: "List[OCI.GroupServiceAuthorization]" = Field(
        type=list, required=False, mutable=False,
    )
    user_service_authorization: "List[OCI.UserServiceAuthorization]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupSessionAdmissionControlGroupModifyRequest(OCIRequest):
    """
    Request to modify a session admission control group for the group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        max_session: maxSession
        max_user_originating_sessions: maxUserOriginatingSessions
        max_user_terminating_sessions: maxUserTerminatingSessions
        reserved_session: reservedSession
        reserved_user_originating_sessions: reservedUserOriginatingSessions
        reserved_user_terminating_sessions: reservedUserTerminatingSessions
        become_default_group: becomeDefaultGroup
        count_intra_sac_group_sessions: countIntraSACGroupSessions
        device_list: deviceList
        block_emergency_and_repair_calls_due_to_sac_limits:
            blockEmergencyAndRepairCallsDueToSACLimits
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("max_session", "maxSession", int),
        E("max_user_originating_sessions", "maxUserOriginatingSessions", int),
        E("max_user_terminating_sessions", "maxUserTerminatingSessions", int),
        E("reserved_session", "reservedSession", int),
        E("reserved_user_originating_sessions", "reservedUserOriginatingSessions", int),
        E("reserved_user_terminating_sessions", "reservedUserTerminatingSessions", int),
        E("become_default_group", "becomeDefaultGroup", bool),
        E("count_intra_sac_group_sessions", "countIntraSACGroupSessions", bool),
        E("device_list", "deviceList", OCI.ReplacementDeviceList, is_complex=True),
        E(
            "block_emergency_and_repair_calls_due_to_sac_limits",
            "blockEmergencyAndRepairCallsDueToSACLimits", bool,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    max_session: int = Field(type=int, required=False, mutable=False)
    max_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_session: int = Field(type=int, required=False, mutable=False)
    reserved_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    become_default_group: bool = Field(type=bool, required=False, mutable=False)
    count_intra_sac_group_sessions: bool = Field(type=bool, required=False, mutable=False)
    device_list: "OCI.ReplacementDeviceList" = Field(
        type=OCI.ReplacementDeviceList, required=False, mutable=False,
    )
    block_emergency_and_repair_calls_due_to_sac_limits: bool = Field(
        type=bool, required=False, mutable=False,
    )


class GroupTrunkGroupAddInstanceRequest14(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The domain is required in the serviceUserId.  The publicUserIdentity in the
    ServiceInstanceAddProfile is not allowed for trunk groups.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        access_device_endpoint: accessDeviceEndpoint
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileTrunkGroup, is_complex=True, is_required=True,
        ),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointAdd,
            is_complex=True,
        ),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileTrunkGroup" = Field(
        type=OCI.ServiceInstanceAddProfileTrunkGroup, required=True, mutable=False,
    )
    access_device_endpoint: "OCI.AccessDeviceEndpointAdd" = Field(
        type=OCI.AccessDeviceEndpointAdd, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)


class GroupTrunkGroupAddInstanceRequest14sp1(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The domain is required in the serviceUserId.  The publicUserIdentity in the
    ServiceInstanceAddProfile is not allowed for trunk groups.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        access_device_endpoint: accessDeviceEndpoint
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_id: capacityExceededRerouteTrunkGroupId
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_id:
            unreachableDestinationRerouteTrunkGroupId
        unreachable_destination_trap_initial_calls: unreachableDestinationTrapInitialCalls
        unreachable_destination_trap_offset_calls: unreachableDestinationTrapOffsetCalls
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfileTrunkGroup, is_complex=True, is_required=True,
        ),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointAdd,
            is_complex=True,
        ),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_id",
            "capacityExceededRerouteTrunkGroupId", str,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_id",
            "unreachableDestinationRerouteTrunkGroupId", str,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls", int, is_required=True,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls", int, is_required=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfileTrunkGroup" = Field(
        type=OCI.ServiceInstanceAddProfileTrunkGroup, required=True, mutable=False,
    )
    access_device_endpoint: "OCI.AccessDeviceEndpointAdd" = Field(
        type=OCI.AccessDeviceEndpointAdd, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_id: str = Field(
        type=str, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_id: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_trap_initial_calls: int = Field(
        type=int, required=True, mutable=False,
    )
    unreachable_destination_trap_offset_calls: int = Field(
        type=int, required=True, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)


class GroupTrunkGroupAddInstanceRequest14sp4(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        unreachable_destination_trap_initial_calls: unreachableDestinationTrapInitialCalls
        unreachable_destination_trap_offset_calls: unreachableDestinationTrapOffsetCalls
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls", int, is_required=True,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls", int, is_required=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupPilotUser" = Field(
        type=OCI.TrunkGroupPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    unreachable_destination_trap_initial_calls: int = Field(
        type=int, required=True, mutable=False,
    )
    unreachable_destination_trap_offset_calls: int = Field(
        type=int, required=True, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupTrunkGroupAddInstanceRequest14sp9(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        unreachable_destination_trap_initial_calls: unreachableDestinationTrapInitialCalls
        unreachable_destination_trap_offset_calls: unreachableDestinationTrapOffsetCalls
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        use_pilot_user_calling_line_identity: usePilotUserCallingLineIdentity
        use_pilot_user_charge_number: usePilotUserChargeNumber
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls", int, is_required=True,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls", int, is_required=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "include_trunk_group_identity", "includeTrunkGroupIdentity", bool,
            is_required=True,
        ),
        E("include_dtg_identity", "includeDtgIdentity", bool, is_required=True),
        E(
            "enable_network_address_identity", "enableNetworkAddressIdentity", bool,
            is_required=True,
        ),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool, is_required=True),
        E(
            "allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool,
            is_required=True,
        ),
        E(
            "use_pilot_user_calling_line_identity", "usePilotUserCallingLineIdentity",
            bool, is_required=True,
        ),
        E("use_pilot_user_charge_number", "usePilotUserChargeNumber", bool, is_required=True),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupPilotUser" = Field(
        type=OCI.TrunkGroupPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    unreachable_destination_trap_initial_calls: int = Field(
        type=int, required=True, mutable=False,
    )
    unreachable_destination_trap_offset_calls: int = Field(
        type=int, required=True, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=True, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    enable_network_address_identity: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    use_pilot_user_calling_line_identity: bool = Field(
        type=bool, required=True, mutable=False,
    )
    use_pilot_user_charge_number: bool = Field(type=bool, required=True, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )


class GroupTrunkGroupAddInstanceRequest15(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupPilotUser" = Field(
        type=OCI.TrunkGroupPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)


class GroupTrunkGroupAddInstanceRequest15sp2(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_policy: pilotUserCallingLineIdentityPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "include_trunk_group_identity", "includeTrunkGroupIdentity", bool,
            is_required=True,
        ),
        E("include_dtg_identity", "includeDtgIdentity", bool, is_required=True),
        E(
            "enable_network_address_identity", "enableNetworkAddressIdentity", bool,
            is_required=True,
        ),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool, is_required=True),
        E(
            "allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy", str, is_required=True,
        ),
        E(
            "pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str,
            is_required=True,
        ),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupPilotUser" = Field(
        type=OCI.TrunkGroupPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=True, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    enable_network_address_identity: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=True, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )


class GroupTrunkGroupAddInstanceRequest17(OCIRequest):
    """
    Replaced By ``GroupTrunkGroupAddInstanceRequest17sp4()`` Add a Trunk Group instance to
    a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_policy: pilotUserCallingLineIdentityPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "include_trunk_group_identity", "includeTrunkGroupIdentity", bool,
            is_required=True,
        ),
        E("include_dtg_identity", "includeDtgIdentity", bool, is_required=True),
        E(
            "enable_network_address_identity", "enableNetworkAddressIdentity", bool,
            is_required=True,
        ),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool, is_required=True),
        E(
            "allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy", str, is_required=True,
        ),
        E(
            "pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str,
            is_required=True,
        ),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupPilotUser" = Field(
        type=OCI.TrunkGroupPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=True, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    enable_network_address_identity: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=True, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=True, mutable=False)


class GroupTrunkGroupAddInstanceRequest17sp3(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``GroupTrunkGroupAddInstanceRequest17sp4()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_policy: pilotUserCallingLineIdentityPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
        prefix_enabled: prefixEnabled
        prefix: prefix
        stateful_rerouting_enabled: statefulReroutingEnabled
        send_continuous_options_message: sendContinuousOptionsMessage
        continuous_options_sending_interval_seconds:
            continuousOptionsSendingIntervalSeconds
        failure_options_sending_interval_seconds: failureOptionsSendingIntervalSeconds
        failure_threshold_counter: failureThresholdCounter
        success_threshold_counter: successThresholdCounter
        invite_failure_threshold_counter: inviteFailureThresholdCounter
        invite_failure_threshold_window_seconds: inviteFailureThresholdWindowSeconds
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "include_trunk_group_identity", "includeTrunkGroupIdentity", bool,
            is_required=True,
        ),
        E("include_dtg_identity", "includeDtgIdentity", bool, is_required=True),
        E(
            "enable_network_address_identity", "enableNetworkAddressIdentity", bool,
            is_required=True,
        ),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool, is_required=True),
        E(
            "allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy", str, is_required=True,
        ),
        E(
            "pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str,
            is_required=True,
        ),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool, is_required=True),
        E("prefix_enabled", "prefixEnabled", bool, is_required=True),
        E("prefix", "prefix", str),
        E("stateful_rerouting_enabled", "statefulReroutingEnabled", bool, is_required=True),
        E(
            "send_continuous_options_message", "sendContinuousOptionsMessage", bool,
            is_required=True,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E("failure_threshold_counter", "failureThresholdCounter", int, is_required=True),
        E("success_threshold_counter", "successThresholdCounter", int, is_required=True),
        E(
            "invite_failure_threshold_counter", "inviteFailureThresholdCounter", int,
            is_required=True,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds", int, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupPilotUser" = Field(
        type=OCI.TrunkGroupPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=True, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    enable_network_address_identity: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=True, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=True, mutable=False)
    prefix_enabled: bool = Field(type=bool, required=True, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)
    stateful_rerouting_enabled: bool = Field(type=bool, required=True, mutable=False)
    send_continuous_options_message: bool = Field(type=bool, required=True, mutable=False)
    continuous_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    success_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_window_seconds: int = Field(
        type=int, required=True, mutable=False,
    )


class GroupTrunkGroupAddInstanceRequest17sp4(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        allow_termination_to_trunk_group_identity: allowTerminationToTrunkGroupIdentity
        allow_termination_to_dtg_identity: allowTerminationToDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        include_trunk_group_identity_for_network_calls:
            includeTrunkGroupIdentityForNetworkCalls
        include_otg_identity_for_network_calls: includeOtgIdentityForNetworkCalls
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_policy: pilotUserCallingLineIdentityPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
        prefix_enabled: prefixEnabled
        prefix: prefix
        stateful_rerouting_enabled: statefulReroutingEnabled
        send_continuous_options_message: sendContinuousOptionsMessage
        continuous_options_sending_interval_seconds:
            continuousOptionsSendingIntervalSeconds
        failure_options_sending_interval_seconds: failureOptionsSendingIntervalSeconds
        failure_threshold_counter: failureThresholdCounter
        success_threshold_counter: successThresholdCounter
        invite_failure_threshold_counter: inviteFailureThresholdCounter
        invite_failure_threshold_window_seconds: inviteFailureThresholdWindowSeconds
        pilot_user_calling_line_asserted_identity_policy:
            pilotUserCallingLineAssertedIdentityPolicy
        use_system_calling_line_asserted_identity_policy:
            useSystemCallingLineAssertedIdentityPolicy
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupMultipleContactPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity", bool, is_required=True,
        ),
        E(
            "allow_termination_to_dtg_identity", "allowTerminationToDtgIdentity", bool,
            is_required=True,
        ),
        E(
            "include_trunk_group_identity", "includeTrunkGroupIdentity", bool,
            is_required=True,
        ),
        E("include_dtg_identity", "includeDtgIdentity", bool, is_required=True),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls", bool, is_required=True,
        ),
        E(
            "include_otg_identity_for_network_calls", "includeOtgIdentityForNetworkCalls",
            bool, is_required=True,
        ),
        E(
            "enable_network_address_identity", "enableNetworkAddressIdentity", bool,
            is_required=True,
        ),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool, is_required=True),
        E(
            "allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy", str, is_required=True,
        ),
        E(
            "pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str,
            is_required=True,
        ),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool, is_required=True),
        E("prefix_enabled", "prefixEnabled", bool, is_required=True),
        E("prefix", "prefix", str),
        E("stateful_rerouting_enabled", "statefulReroutingEnabled", bool, is_required=True),
        E(
            "send_continuous_options_message", "sendContinuousOptionsMessage", bool,
            is_required=True,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E("failure_threshold_counter", "failureThresholdCounter", int, is_required=True),
        E("success_threshold_counter", "successThresholdCounter", int, is_required=True),
        E(
            "invite_failure_threshold_counter", "inviteFailureThresholdCounter", int,
            is_required=True,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds", int, is_required=True,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy", str, is_required=True,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy", bool, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupMultipleContactPilotUser" = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    allow_termination_to_trunk_group_identity: bool = Field(
        type=bool, required=True, mutable=False,
    )
    allow_termination_to_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=True, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    include_otg_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    enable_network_address_identity: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=True, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=True, mutable=False)
    prefix_enabled: bool = Field(type=bool, required=True, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)
    stateful_rerouting_enabled: bool = Field(type=bool, required=True, mutable=False)
    send_continuous_options_message: bool = Field(type=bool, required=True, mutable=False)
    continuous_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    success_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_window_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    pilot_user_calling_line_asserted_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    use_system_calling_line_asserted_identity_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )


class GroupTrunkGroupAddInstanceRequest19(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The command will fail if enableNetworkAddressIdentity is set to true and administrator
    is not System/Provisioning level administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by
    ``GroupTrunkGroupAddInstanceRequest19sp1()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        allow_termination_to_trunk_group_identity: allowTerminationToTrunkGroupIdentity
        allow_termination_to_dtg_identity: allowTerminationToDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        include_trunk_group_identity_for_network_calls:
            includeTrunkGroupIdentityForNetworkCalls
        include_otg_identity_for_network_calls: includeOtgIdentityForNetworkCalls
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_policy: pilotUserCallingLineIdentityPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
        prefix_enabled: prefixEnabled
        prefix: prefix
        stateful_rerouting_enabled: statefulReroutingEnabled
        send_continuous_options_message: sendContinuousOptionsMessage
        continuous_options_sending_interval_seconds:
            continuousOptionsSendingIntervalSeconds
        failure_options_sending_interval_seconds: failureOptionsSendingIntervalSeconds
        failure_threshold_counter: failureThresholdCounter
        success_threshold_counter: successThresholdCounter
        invite_failure_threshold_counter: inviteFailureThresholdCounter
        invite_failure_threshold_window_seconds: inviteFailureThresholdWindowSeconds
        pilot_user_calling_line_asserted_identity_policy:
            pilotUserCallingLineAssertedIdentityPolicy
        use_system_calling_line_asserted_identity_policy:
            useSystemCallingLineAssertedIdentityPolicy
        pilot_user_call_optimization_policy: pilotUserCallOptimizationPolicy
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupMultipleContactPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity", bool, is_required=True,
        ),
        E(
            "allow_termination_to_dtg_identity", "allowTerminationToDtgIdentity", bool,
            is_required=True,
        ),
        E(
            "include_trunk_group_identity", "includeTrunkGroupIdentity", bool,
            is_required=True,
        ),
        E("include_dtg_identity", "includeDtgIdentity", bool, is_required=True),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls", bool, is_required=True,
        ),
        E(
            "include_otg_identity_for_network_calls", "includeOtgIdentityForNetworkCalls",
            bool, is_required=True,
        ),
        E(
            "enable_network_address_identity", "enableNetworkAddressIdentity", bool,
            is_required=True,
        ),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool, is_required=True),
        E(
            "allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_policy",
            "pilotUserCallingLineIdentityPolicy", str, is_required=True,
        ),
        E(
            "pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str,
            is_required=True,
        ),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool, is_required=True),
        E("prefix_enabled", "prefixEnabled", bool, is_required=True),
        E("prefix", "prefix", str),
        E("stateful_rerouting_enabled", "statefulReroutingEnabled", bool, is_required=True),
        E(
            "send_continuous_options_message", "sendContinuousOptionsMessage", bool,
            is_required=True,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E("failure_threshold_counter", "failureThresholdCounter", int, is_required=True),
        E("success_threshold_counter", "successThresholdCounter", int, is_required=True),
        E(
            "invite_failure_threshold_counter", "inviteFailureThresholdCounter", int,
            is_required=True,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds", int, is_required=True,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy", str, is_required=True,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy", bool, is_required=True,
        ),
        E(
            "pilot_user_call_optimization_policy", "pilotUserCallOptimizationPolicy", str,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupMultipleContactPilotUser" = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    allow_termination_to_trunk_group_identity: bool = Field(
        type=bool, required=True, mutable=False,
    )
    allow_termination_to_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=True, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    include_otg_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    enable_network_address_identity: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=True, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=True, mutable=False)
    prefix_enabled: bool = Field(type=bool, required=True, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)
    stateful_rerouting_enabled: bool = Field(type=bool, required=True, mutable=False)
    send_continuous_options_message: bool = Field(type=bool, required=True, mutable=False)
    continuous_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    success_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_window_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    pilot_user_calling_line_asserted_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    use_system_calling_line_asserted_identity_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    pilot_user_call_optimization_policy: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupAddInstanceRequest19sp1(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The command will fail if enableNetworkAddressIdentity is set to true and administrator
    is not System/Provisioning level administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``GroupTrunkGroupAddInstanceRequest20sp1()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        allow_termination_to_trunk_group_identity: allowTerminationToTrunkGroupIdentity
        allow_termination_to_dtg_identity: allowTerminationToDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        include_trunk_group_identity_for_network_calls:
            includeTrunkGroupIdentityForNetworkCalls
        include_otg_identity_for_network_calls: includeOtgIdentityForNetworkCalls
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_for_external_calls_policy:
            pilotUserCallingLineIdentityForExternalCallsPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
        prefix_enabled: prefixEnabled
        prefix: prefix
        stateful_rerouting_enabled: statefulReroutingEnabled
        send_continuous_options_message: sendContinuousOptionsMessage
        continuous_options_sending_interval_seconds:
            continuousOptionsSendingIntervalSeconds
        failure_options_sending_interval_seconds: failureOptionsSendingIntervalSeconds
        failure_threshold_counter: failureThresholdCounter
        success_threshold_counter: successThresholdCounter
        invite_failure_threshold_counter: inviteFailureThresholdCounter
        invite_failure_threshold_window_seconds: inviteFailureThresholdWindowSeconds
        pilot_user_calling_line_asserted_identity_policy:
            pilotUserCallingLineAssertedIdentityPolicy
        use_system_calling_line_asserted_identity_policy:
            useSystemCallingLineAssertedIdentityPolicy
        pilot_user_call_optimization_policy: pilotUserCallOptimizationPolicy
        clid_source_for_screened_calls_policy: clidSourceForScreenedCallsPolicy
        use_system_clid_source_for_screened_calls_policy:
            useSystemCLIDSourceForScreenedCallsPolicy
        user_lookup_policy: userLookupPolicy
        use_system_user_lookup_policy: useSystemUserLookupPolicy
        pilot_user_calling_line_identity_for_emergency_calls_policy:
            pilotUserCallingLineIdentityForEmergencyCallsPolicy
        pilot_user_network_class_of_service: pilotUserNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupMultipleContactPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity", bool, is_required=True,
        ),
        E(
            "allow_termination_to_dtg_identity", "allowTerminationToDtgIdentity", bool,
            is_required=True,
        ),
        E(
            "include_trunk_group_identity", "includeTrunkGroupIdentity", bool,
            is_required=True,
        ),
        E("include_dtg_identity", "includeDtgIdentity", bool, is_required=True),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls", bool, is_required=True,
        ),
        E(
            "include_otg_identity_for_network_calls", "includeOtgIdentityForNetworkCalls",
            bool, is_required=True,
        ),
        E(
            "enable_network_address_identity", "enableNetworkAddressIdentity", bool,
            is_required=True,
        ),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool, is_required=True),
        E(
            "allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy", str, is_required=True,
        ),
        E(
            "pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str,
            is_required=True,
        ),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool, is_required=True),
        E("prefix_enabled", "prefixEnabled", bool, is_required=True),
        E("prefix", "prefix", str),
        E("stateful_rerouting_enabled", "statefulReroutingEnabled", bool, is_required=True),
        E(
            "send_continuous_options_message", "sendContinuousOptionsMessage", bool,
            is_required=True,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E("failure_threshold_counter", "failureThresholdCounter", int, is_required=True),
        E("success_threshold_counter", "successThresholdCounter", int, is_required=True),
        E(
            "invite_failure_threshold_counter", "inviteFailureThresholdCounter", int,
            is_required=True,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds", int, is_required=True,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy", str, is_required=True,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy", bool, is_required=True,
        ),
        E(
            "pilot_user_call_optimization_policy", "pilotUserCallOptimizationPolicy", str,
            is_required=True,
        ),
        E(
            "clid_source_for_screened_calls_policy", "clidSourceForScreenedCallsPolicy",
            str, is_required=True,
        ),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy", bool, is_required=True,
        ),
        E("user_lookup_policy", "userLookupPolicy", str, is_required=True),
        E(
            "use_system_user_lookup_policy", "useSystemUserLookupPolicy", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy", str, is_required=True,
        ),
        E("pilot_user_network_class_of_service", "pilotUserNetworkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupMultipleContactPilotUser" = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    allow_termination_to_trunk_group_identity: bool = Field(
        type=bool, required=True, mutable=False,
    )
    allow_termination_to_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=True, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    include_otg_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    enable_network_address_identity: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_for_external_calls_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=True, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=True, mutable=False)
    prefix_enabled: bool = Field(type=bool, required=True, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)
    stateful_rerouting_enabled: bool = Field(type=bool, required=True, mutable=False)
    send_continuous_options_message: bool = Field(type=bool, required=True, mutable=False)
    continuous_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    success_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_window_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    pilot_user_calling_line_asserted_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    use_system_calling_line_asserted_identity_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    pilot_user_call_optimization_policy: str = Field(type=str, required=True, mutable=False)
    clid_source_for_screened_calls_policy: str = Field(type=str, required=True, mutable=False)
    use_system_clid_source_for_screened_calls_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    user_lookup_policy: str = Field(type=str, required=True, mutable=False)
    use_system_user_lookup_policy: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_for_emergency_calls_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupTrunkGroupAddInstanceRequest20sp1(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The command will fail if enableNetworkAddressIdentity is set to true and administrator
    is not System/Provisioning level administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Replaced by:
    ``GroupTrunkGroupAddInstanceRequest21()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        allow_termination_to_trunk_group_identity: allowTerminationToTrunkGroupIdentity
        allow_termination_to_dtg_identity: allowTerminationToDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        include_trunk_group_identity_for_network_calls:
            includeTrunkGroupIdentityForNetworkCalls
        include_otg_identity_for_network_calls: includeOtgIdentityForNetworkCalls
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_for_external_calls_policy:
            pilotUserCallingLineIdentityForExternalCallsPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
        prefix_enabled: prefixEnabled
        prefix: prefix
        stateful_rerouting_enabled: statefulReroutingEnabled
        send_continuous_options_message: sendContinuousOptionsMessage
        continuous_options_sending_interval_seconds:
            continuousOptionsSendingIntervalSeconds
        failure_options_sending_interval_seconds: failureOptionsSendingIntervalSeconds
        failure_threshold_counter: failureThresholdCounter
        success_threshold_counter: successThresholdCounter
        invite_failure_threshold_counter: inviteFailureThresholdCounter
        invite_failure_threshold_window_seconds: inviteFailureThresholdWindowSeconds
        pilot_user_calling_line_asserted_identity_policy:
            pilotUserCallingLineAssertedIdentityPolicy
        use_system_calling_line_asserted_identity_policy:
            useSystemCallingLineAssertedIdentityPolicy
        pilot_user_call_optimization_policy: pilotUserCallOptimizationPolicy
        clid_source_for_screened_calls_policy: clidSourceForScreenedCallsPolicy
        use_system_clid_source_for_screened_calls_policy:
            useSystemCLIDSourceForScreenedCallsPolicy
        user_lookup_policy: userLookupPolicy
        use_system_user_lookup_policy: useSystemUserLookupPolicy
        pilot_user_calling_line_identity_for_emergency_calls_policy:
            pilotUserCallingLineIdentityForEmergencyCallsPolicy
        pilot_user_network_class_of_service: pilotUserNetworkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupMultipleContactPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity", bool, is_required=True,
        ),
        E(
            "allow_termination_to_dtg_identity", "allowTerminationToDtgIdentity", bool,
            is_required=True,
        ),
        E(
            "include_trunk_group_identity", "includeTrunkGroupIdentity", bool,
            is_required=True,
        ),
        E("include_dtg_identity", "includeDtgIdentity", bool, is_required=True),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls", bool, is_required=True,
        ),
        E(
            "include_otg_identity_for_network_calls", "includeOtgIdentityForNetworkCalls",
            bool, is_required=True,
        ),
        E(
            "enable_network_address_identity", "enableNetworkAddressIdentity", bool,
            is_required=True,
        ),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool, is_required=True),
        E(
            "allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy", str, is_required=True,
        ),
        E(
            "pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str,
            is_required=True,
        ),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool, is_required=True),
        E("prefix_enabled", "prefixEnabled", bool, is_required=True),
        E("prefix", "prefix", str),
        E("stateful_rerouting_enabled", "statefulReroutingEnabled", bool, is_required=True),
        E(
            "send_continuous_options_message", "sendContinuousOptionsMessage", bool,
            is_required=True,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E("failure_threshold_counter", "failureThresholdCounter", int, is_required=True),
        E("success_threshold_counter", "successThresholdCounter", int, is_required=True),
        E(
            "invite_failure_threshold_counter", "inviteFailureThresholdCounter", int,
            is_required=True,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds", int, is_required=True,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy", str, is_required=True,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy", bool, is_required=True,
        ),
        E(
            "pilot_user_call_optimization_policy", "pilotUserCallOptimizationPolicy", str,
            is_required=True,
        ),
        E(
            "clid_source_for_screened_calls_policy", "clidSourceForScreenedCallsPolicy",
            str, is_required=True,
        ),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy", bool, is_required=True,
        ),
        E("user_lookup_policy", "userLookupPolicy", str, is_required=True),
        E(
            "use_system_user_lookup_policy", "useSystemUserLookupPolicy", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy", str, is_required=True,
        ),
        E("pilot_user_network_class_of_service", "pilotUserNetworkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupMultipleContactPilotUser" = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    allow_termination_to_trunk_group_identity: bool = Field(
        type=bool, required=True, mutable=False,
    )
    allow_termination_to_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=True, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    include_otg_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    enable_network_address_identity: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_for_external_calls_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=True, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=True, mutable=False)
    prefix_enabled: bool = Field(type=bool, required=True, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)
    stateful_rerouting_enabled: bool = Field(type=bool, required=True, mutable=False)
    send_continuous_options_message: bool = Field(type=bool, required=True, mutable=False)
    continuous_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    success_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_window_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    pilot_user_calling_line_asserted_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    use_system_calling_line_asserted_identity_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    pilot_user_call_optimization_policy: str = Field(type=str, required=True, mutable=False)
    clid_source_for_screened_calls_policy: str = Field(type=str, required=True, mutable=False)
    use_system_clid_source_for_screened_calls_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    user_lookup_policy: str = Field(type=str, required=True, mutable=False)
    use_system_user_lookup_policy: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_for_emergency_calls_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupTrunkGroupAddInstanceRequest21(OCIRequest):
    """
    Add a Trunk Group instance to a group.

    The command will fail if enableNetworkAddressIdentity is set to true and administrator
    is not System/Provisioning level administrator.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Following
    attributes are only used in IMS mode: implicitRegistrationSetSupportPolicy
    useSystemImplicitRegistrationSetSupportPolicy
    sipIdentityForPilotAndProxyTrunkModesPolicy
    useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        pilot_user: pilotUser
        department: department
        access_device: accessDevice
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_key: capacityExceededRerouteTrunkGroupKey
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_key:
            unreachableDestinationRerouteTrunkGroupKey
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
        hosted_user_id: hostedUserId
        trunk_group_identity: trunkGroupIdentity
        otg_dtg_identity: otgDtgIdentity
        allow_termination_to_trunk_group_identity: allowTerminationToTrunkGroupIdentity
        allow_termination_to_dtg_identity: allowTerminationToDtgIdentity
        include_trunk_group_identity: includeTrunkGroupIdentity
        include_dtg_identity: includeDtgIdentity
        include_trunk_group_identity_for_network_calls:
            includeTrunkGroupIdentityForNetworkCalls
        include_otg_identity_for_network_calls: includeOtgIdentityForNetworkCalls
        enable_network_address_identity: enableNetworkAddressIdentity
        allow_unscreened_calls: allowUnscreenedCalls
        allow_unscreened_emergency_calls: allowUnscreenedEmergencyCalls
        pilot_user_calling_line_identity_for_external_calls_policy:
            pilotUserCallingLineIdentityForExternalCallsPolicy
        pilot_user_charge_number_policy: pilotUserChargeNumberPolicy
        call_forwarding_always_action: callForwardingAlwaysAction
        call_forwarding_always_forward_address: callForwardingAlwaysForwardAddress
        call_forwarding_always_reroute_trunk_group_key:
            callForwardingAlwaysRerouteTrunkGroupKey
        peering_domain: peeringDomain
        route_to_peering_domain: routeToPeeringDomain
        prefix_enabled: prefixEnabled
        prefix: prefix
        stateful_rerouting_enabled: statefulReroutingEnabled
        send_continuous_options_message: sendContinuousOptionsMessage
        continuous_options_sending_interval_seconds:
            continuousOptionsSendingIntervalSeconds
        failure_options_sending_interval_seconds: failureOptionsSendingIntervalSeconds
        failure_threshold_counter: failureThresholdCounter
        success_threshold_counter: successThresholdCounter
        invite_failure_threshold_counter: inviteFailureThresholdCounter
        invite_failure_threshold_window_seconds: inviteFailureThresholdWindowSeconds
        pilot_user_calling_line_asserted_identity_policy:
            pilotUserCallingLineAssertedIdentityPolicy
        use_system_calling_line_asserted_identity_policy:
            useSystemCallingLineAssertedIdentityPolicy
        pilot_user_call_optimization_policy: pilotUserCallOptimizationPolicy
        clid_source_for_screened_calls_policy: clidSourceForScreenedCallsPolicy
        use_system_clid_source_for_screened_calls_policy:
            useSystemCLIDSourceForScreenedCallsPolicy
        user_lookup_policy: userLookupPolicy
        use_system_user_lookup_policy: useSystemUserLookupPolicy
        pilot_user_calling_line_identity_for_emergency_calls_policy:
            pilotUserCallingLineIdentityForEmergencyCallsPolicy
        pilot_user_network_class_of_service: pilotUserNetworkClassOfService
        implicit_registration_set_support_policy: implicitRegistrationSetSupportPolicy
        use_system_implicit_registration_set_support_policy:
            useSystemImplicitRegistrationSetSupportPolicy
        sip_identity_for_pilot_and_proxy_trunk_modes_policy:
            sipIdentityForPilotAndProxyTrunkModesPolicy
        use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy:
            useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy
        use_system_support_connected_identity_policy:
            useSystemSupportConnectedIdentityPolicy
        support_connected_identity_policy: supportConnectedIdentityPolicy
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("pilot_user", "pilotUser", OCI.TrunkGroupMultipleContactPilotUser, is_complex=True),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("access_device", "accessDevice", OCI.AccessDevice, is_complex=True),
        E("max_active_calls", "maxActiveCalls", int, is_required=True),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool, is_required=True),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_key",
            "capacityExceededRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E(
            "capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls",
            int, is_required=True,
        ),
        E(
            "capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int,
            is_required=True,
        ),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_key",
            "unreachableDestinationRerouteTrunkGroupKey", OCI.TrunkGroupKey,
            is_complex=True,
        ),
        E("invitation_timeout", "invitationTimeout", int, is_required=True),
        E("require_authentication", "requireAuthentication", bool, is_required=True),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
        E("hosted_user_id", "hostedUserId", str, is_array=True),
        E("trunk_group_identity", "trunkGroupIdentity", str),
        E("otg_dtg_identity", "otgDtgIdentity", str),
        E(
            "allow_termination_to_trunk_group_identity",
            "allowTerminationToTrunkGroupIdentity", bool, is_required=True,
        ),
        E(
            "allow_termination_to_dtg_identity", "allowTerminationToDtgIdentity", bool,
            is_required=True,
        ),
        E(
            "include_trunk_group_identity", "includeTrunkGroupIdentity", bool,
            is_required=True,
        ),
        E("include_dtg_identity", "includeDtgIdentity", bool, is_required=True),
        E(
            "include_trunk_group_identity_for_network_calls",
            "includeTrunkGroupIdentityForNetworkCalls", bool, is_required=True,
        ),
        E(
            "include_otg_identity_for_network_calls", "includeOtgIdentityForNetworkCalls",
            bool, is_required=True,
        ),
        E(
            "enable_network_address_identity", "enableNetworkAddressIdentity", bool,
            is_required=True,
        ),
        E("allow_unscreened_calls", "allowUnscreenedCalls", bool, is_required=True),
        E(
            "allow_unscreened_emergency_calls", "allowUnscreenedEmergencyCalls", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_for_external_calls_policy",
            "pilotUserCallingLineIdentityForExternalCallsPolicy", str, is_required=True,
        ),
        E(
            "pilot_user_charge_number_policy", "pilotUserChargeNumberPolicy", str,
            is_required=True,
        ),
        E("call_forwarding_always_action", "callForwardingAlwaysAction", str),
        E(
            "call_forwarding_always_forward_address",
            "callForwardingAlwaysForwardAddress", str,
        ),
        E(
            "call_forwarding_always_reroute_trunk_group_key",
            "callForwardingAlwaysRerouteTrunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
        ),
        E("peering_domain", "peeringDomain", str),
        E("route_to_peering_domain", "routeToPeeringDomain", bool, is_required=True),
        E("prefix_enabled", "prefixEnabled", bool, is_required=True),
        E("prefix", "prefix", str),
        E("stateful_rerouting_enabled", "statefulReroutingEnabled", bool, is_required=True),
        E(
            "send_continuous_options_message", "sendContinuousOptionsMessage", bool,
            is_required=True,
        ),
        E(
            "continuous_options_sending_interval_seconds",
            "continuousOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E(
            "failure_options_sending_interval_seconds",
            "failureOptionsSendingIntervalSeconds", int, is_required=True,
        ),
        E("failure_threshold_counter", "failureThresholdCounter", int, is_required=True),
        E("success_threshold_counter", "successThresholdCounter", int, is_required=True),
        E(
            "invite_failure_threshold_counter", "inviteFailureThresholdCounter", int,
            is_required=True,
        ),
        E(
            "invite_failure_threshold_window_seconds",
            "inviteFailureThresholdWindowSeconds", int, is_required=True,
        ),
        E(
            "pilot_user_calling_line_asserted_identity_policy",
            "pilotUserCallingLineAssertedIdentityPolicy", str, is_required=True,
        ),
        E(
            "use_system_calling_line_asserted_identity_policy",
            "useSystemCallingLineAssertedIdentityPolicy", bool, is_required=True,
        ),
        E(
            "pilot_user_call_optimization_policy", "pilotUserCallOptimizationPolicy", str,
            is_required=True,
        ),
        E(
            "clid_source_for_screened_calls_policy", "clidSourceForScreenedCallsPolicy",
            str, is_required=True,
        ),
        E(
            "use_system_clid_source_for_screened_calls_policy",
            "useSystemCLIDSourceForScreenedCallsPolicy", bool, is_required=True,
        ),
        E("user_lookup_policy", "userLookupPolicy", str, is_required=True),
        E(
            "use_system_user_lookup_policy", "useSystemUserLookupPolicy", bool,
            is_required=True,
        ),
        E(
            "pilot_user_calling_line_identity_for_emergency_calls_policy",
            "pilotUserCallingLineIdentityForEmergencyCallsPolicy", str, is_required=True,
        ),
        E("pilot_user_network_class_of_service", "pilotUserNetworkClassOfService", str),
        E(
            "implicit_registration_set_support_policy",
            "implicitRegistrationSetSupportPolicy", str, is_required=True,
        ),
        E(
            "use_system_implicit_registration_set_support_policy",
            "useSystemImplicitRegistrationSetSupportPolicy", bool, is_required=True,
        ),
        E(
            "sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "sipIdentityForPilotAndProxyTrunkModesPolicy", str, is_required=True,
        ),
        E(
            "use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy",
            "useSystemSIPIdentityForPilotAndProxyTrunkModesPolicy", bool, is_required=True,
        ),
        E(
            "use_system_support_connected_identity_policy",
            "useSystemSupportConnectedIdentityPolicy", bool, is_required=True,
        ),
        E(
            "support_connected_identity_policy", "supportConnectedIdentityPolicy", str,
            is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    pilot_user: "OCI.TrunkGroupMultipleContactPilotUser" = Field(
        type=OCI.TrunkGroupMultipleContactPilotUser, required=False, mutable=False,
    )
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    access_device: "OCI.AccessDevice" = Field(
        type=OCI.AccessDevice, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=True, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=True, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=True, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=True, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=True, mutable=False)
    require_authentication: bool = Field(type=bool, required=True, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)
    hosted_user_id: "List[str]" = Field(type=list, required=False, mutable=False)
    trunk_group_identity: str = Field(type=str, required=False, mutable=False)
    otg_dtg_identity: str = Field(type=str, required=False, mutable=False)
    allow_termination_to_trunk_group_identity: bool = Field(
        type=bool, required=True, mutable=False,
    )
    allow_termination_to_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity: bool = Field(type=bool, required=True, mutable=False)
    include_dtg_identity: bool = Field(type=bool, required=True, mutable=False)
    include_trunk_group_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    include_otg_identity_for_network_calls: bool = Field(
        type=bool, required=True, mutable=False,
    )
    enable_network_address_identity: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_calls: bool = Field(type=bool, required=True, mutable=False)
    allow_unscreened_emergency_calls: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_for_external_calls_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_charge_number_policy: str = Field(type=str, required=True, mutable=False)
    call_forwarding_always_action: str = Field(type=str, required=False, mutable=False)
    call_forwarding_always_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    call_forwarding_always_reroute_trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=False, mutable=False,
    )
    peering_domain: str = Field(type=str, required=False, mutable=False)
    route_to_peering_domain: bool = Field(type=bool, required=True, mutable=False)
    prefix_enabled: bool = Field(type=bool, required=True, mutable=False)
    prefix: str = Field(type=str, required=False, mutable=False)
    stateful_rerouting_enabled: bool = Field(type=bool, required=True, mutable=False)
    send_continuous_options_message: bool = Field(type=bool, required=True, mutable=False)
    continuous_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_options_sending_interval_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    success_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_counter: int = Field(type=int, required=True, mutable=False)
    invite_failure_threshold_window_seconds: int = Field(
        type=int, required=True, mutable=False,
    )
    pilot_user_calling_line_asserted_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    use_system_calling_line_asserted_identity_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    pilot_user_call_optimization_policy: str = Field(type=str, required=True, mutable=False)
    clid_source_for_screened_calls_policy: str = Field(type=str, required=True, mutable=False)
    use_system_clid_source_for_screened_calls_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    user_lookup_policy: str = Field(type=str, required=True, mutable=False)
    use_system_user_lookup_policy: bool = Field(type=bool, required=True, mutable=False)
    pilot_user_calling_line_identity_for_emergency_calls_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    pilot_user_network_class_of_service: str = Field(type=str, required=False, mutable=False)
    implicit_registration_set_support_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    use_system_implicit_registration_set_support_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    sip_identity_for_pilot_and_proxy_trunk_modes_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    use_system_sip_identity_for_pilot_and_proxy_trunk_modes_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    use_system_support_connected_identity_policy: bool = Field(
        type=bool, required=True, mutable=False,
    )
    support_connected_identity_policy: str = Field(type=str, required=True, mutable=False)


class GroupTrunkGroupGetAvailableHostedUserListRequest(OCIRequest):
    """
    Get a list of hosted users that can be assigned to a Trunk Group.

    The response is either ``GroupTrunkGroupGetAvailableHostedUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupTrunkGroupGetInstanceUserListRequest(OCIRequest):
    """
    Get a list of user's on a Trunk Group Instance.

    The response is either a ``GroupTrunkGroupGetInstanceUserListResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class GroupTrunkGroupGetInstanceUserListRequest14sp4(OCIRequest):
    """
    Get a list of user's on a Trunk Group Instance.

    The response is either a ``GroupTrunkGroupGetInstanceUserListResponse14sp4()`` or an
    ``ErrorResponse()``.

    Attributes:
        trunk_group_key: trunkGroupKey
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E(
            "trunk_group_key", "trunkGroupKey", OCI.TrunkGroupKey, is_complex=True,
            is_required=True,
        ),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    trunk_group_key: "OCI.TrunkGroupKey" = Field(
        type=OCI.TrunkGroupKey, required=True, mutable=False,
    )
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupTrunkGroupModifyInstanceRequest14(OCIRequest):
    """
    Modify a Trunk Group Instance in a group.

    The publicUserIdentity in the ServiceInstanceModifyProfile is not allowed for trunk
    groups.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        access_device_endpoint: accessDeviceEndpoint
        max_active_calls: maxActiveCalls
        max_incoming_calls: maxIncomingCalls
        max_outgoing_calls: maxOutgoingCalls
        enable_bursting: enableBursting
        bursting_max_active_calls: burstingMaxActiveCalls
        bursting_max_incoming_calls: burstingMaxIncomingCalls
        bursting_max_outgoing_calls: burstingMaxOutgoingCalls
        capacity_exceeded_action: capacityExceededAction
        capacity_exceeded_forward_address: capacityExceededForwardAddress
        capacity_exceeded_reroute_trunk_group_id: capacityExceededRerouteTrunkGroupId
        capacity_exceeded_trap_initial_calls: capacityExceededTrapInitialCalls
        capacity_exceeded_trap_offset_calls: capacityExceededTrapOffsetCalls
        unreachable_destination_action: unreachableDestinationAction
        unreachable_destination_forward_address: unreachableDestinationForwardAddress
        unreachable_destination_reroute_trunk_group_id:
            unreachableDestinationRerouteTrunkGroupId
        unreachable_destination_trap_initial_calls: unreachableDestinationTrapInitialCalls
        unreachable_destination_trap_offset_calls: unreachableDestinationTrapOffsetCalls
        invitation_timeout: invitationTimeout
        require_authentication: requireAuthentication
        sip_authentication_user_name: sipAuthenticationUserName
        sip_authentication_password: sipAuthenticationPassword
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfileTrunkGroup, is_complex=True,
        ),
        E(
            "access_device_endpoint", "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointModify, is_complex=True,
        ),
        E("max_active_calls", "maxActiveCalls", int),
        E("max_incoming_calls", "maxIncomingCalls", int),
        E("max_outgoing_calls", "maxOutgoingCalls", int),
        E("enable_bursting", "enableBursting", bool),
        E("bursting_max_active_calls", "burstingMaxActiveCalls", int),
        E("bursting_max_incoming_calls", "burstingMaxIncomingCalls", int),
        E("bursting_max_outgoing_calls", "burstingMaxOutgoingCalls", int),
        E("capacity_exceeded_action", "capacityExceededAction", str),
        E("capacity_exceeded_forward_address", "capacityExceededForwardAddress", str),
        E(
            "capacity_exceeded_reroute_trunk_group_id",
            "capacityExceededRerouteTrunkGroupId", str,
        ),
        E("capacity_exceeded_trap_initial_calls", "capacityExceededTrapInitialCalls", int),
        E("capacity_exceeded_trap_offset_calls", "capacityExceededTrapOffsetCalls", int),
        E("unreachable_destination_action", "unreachableDestinationAction", str),
        E(
            "unreachable_destination_forward_address",
            "unreachableDestinationForwardAddress", str,
        ),
        E(
            "unreachable_destination_reroute_trunk_group_id",
            "unreachableDestinationRerouteTrunkGroupId", str,
        ),
        E(
            "unreachable_destination_trap_initial_calls",
            "unreachableDestinationTrapInitialCalls", int,
        ),
        E(
            "unreachable_destination_trap_offset_calls",
            "unreachableDestinationTrapOffsetCalls", int,
        ),
        E("invitation_timeout", "invitationTimeout", int),
        E("require_authentication", "requireAuthentication", bool),
        E("sip_authentication_user_name", "sipAuthenticationUserName", str),
        E("sip_authentication_password", "sipAuthenticationPassword", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfileTrunkGroup" = Field(
        type=OCI.ServiceInstanceModifyProfileTrunkGroup, required=False, mutable=False,
    )
    access_device_endpoint: "OCI.AccessDeviceEndpointModify" = Field(
        type=OCI.AccessDeviceEndpointModify, required=False, mutable=False,
    )
    max_active_calls: int = Field(type=int, required=False, mutable=False)
    max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    enable_bursting: bool = Field(type=bool, required=False, mutable=False)
    bursting_max_active_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_incoming_calls: int = Field(type=int, required=False, mutable=False)
    bursting_max_outgoing_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_action: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_forward_address: str = Field(type=str, required=False, mutable=False)
    capacity_exceeded_reroute_trunk_group_id: str = Field(
        type=str, required=False, mutable=False,
    )
    capacity_exceeded_trap_initial_calls: int = Field(type=int, required=False, mutable=False)
    capacity_exceeded_trap_offset_calls: int = Field(type=int, required=False, mutable=False)
    unreachable_destination_action: str = Field(type=str, required=False, mutable=False)
    unreachable_destination_forward_address: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_reroute_trunk_group_id: str = Field(
        type=str, required=False, mutable=False,
    )
    unreachable_destination_trap_initial_calls: int = Field(
        type=int, required=False, mutable=False,
    )
    unreachable_destination_trap_offset_calls: int = Field(
        type=int, required=False, mutable=False,
    )
    invitation_timeout: int = Field(type=int, required=False, mutable=False)
    require_authentication: bool = Field(type=bool, required=False, mutable=False)
    sip_authentication_user_name: str = Field(type=str, required=False, mutable=False)
    sip_authentication_password: str = Field(type=str, required=False, mutable=False)


class GroupVirtualOnNetEnterpriseExtensionsAddUserRequest(OCIRequest):
    """
    Adds Virtual On-Net users to a Group.

    It is possible to add either: a single user, or a list of users, or a range of users,
    or any combination thereof.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        virtual_on_net_user: virtualOnNetUser
        virtual_on_net_user_range: virtualOnNetUserRange
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("virtual_on_net_user", "virtualOnNetUser", OCI.VirtualOnNetUser, is_complex=True),
        E(
            "virtual_on_net_user_range", "virtualOnNetUserRange",
            OCI.VirtualOnNetUserRange, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    virtual_on_net_user: "OCI.VirtualOnNetUser" = Field(
        type=OCI.VirtualOnNetUser, required=False, mutable=False,
    )
    virtual_on_net_user_range: "OCI.VirtualOnNetUserRange" = Field(
        type=OCI.VirtualOnNetUserRange, required=False, mutable=False,
    )


class GroupVoiceMessagingGroupModifyVoicePortalRequest(OCIRequest):
    """
    Request to modify the group voice portal information for a voice messaging group.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_instance_profile: serviceInstanceProfile
        is_active: isActive
        enable_extended_scope: enableExtendedScope
        allow_identification_by_phone_number_or_voice_mail_aliases_on_login:
            allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin
        use_voice_portal_wizard: useVoicePortalWizard
        voice_portal_external_routing_scope: voicePortalExternalRoutingScope
        use_external_routing: useExternalRouting
        external_routing_address: externalRoutingAddress
        home_zone_name: homeZoneName
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("is_active", "isActive", bool),
        E("enable_extended_scope", "enableExtendedScope", bool),
        E(
            "allow_identification_by_phone_number_or_voice_mail_aliases_on_login",
            "allowIdentificationByPhoneNumberOrVoiceMailAliasesOnLogin", bool,
        ),
        E("use_voice_portal_wizard", "useVoicePortalWizard", bool),
        E("voice_portal_external_routing_scope", "voicePortalExternalRoutingScope", str),
        E("use_external_routing", "useExternalRouting", bool),
        E("external_routing_address", "externalRoutingAddress", str),
        E("home_zone_name", "homeZoneName", str),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    is_active: bool = Field(type=bool, required=False, mutable=False)
    enable_extended_scope: bool = Field(type=bool, required=False, mutable=False)
    allow_identification_by_phone_number_or_voice_mail_aliases_on_login: bool = Field(
        type=bool, required=False, mutable=False,
    )
    use_voice_portal_wizard: bool = Field(type=bool, required=False, mutable=False)
    voice_portal_external_routing_scope: str = Field(type=str, required=False, mutable=False)
    use_external_routing: bool = Field(type=bool, required=False, mutable=False)
    external_routing_address: str = Field(type=str, required=False, mutable=False)
    home_zone_name: str = Field(type=str, required=False, mutable=False)
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupVoiceXmlAddInstanceRequest(OCIRequest):
    """
    Add a VoiceXML instance to a group.

    The domain is required in the serviceUserId.  For a valid voiceXml instance to work
    properly, a device with Static Registration is expected with a valid contact.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        network_class_of_service: networkClassOfService
        access_device_endpoint: accessDeviceEndpoint
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointAdd,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointAdd" = Field(
        type=OCI.AccessDeviceEndpointAdd, required=False, mutable=False,
    )


class GroupVoiceXmlModifyInstanceRequest(OCIRequest):
    """
    Request to modify a VoiceXML instance.

    For a valid voiceXml instance to work properly, a device with Static Registration is
    expected with a valid contact.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        network_class_of_service: networkClassOfService
        access_device_endpoint: accessDeviceEndpoint
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("network_class_of_service", "networkClassOfService", str),
        E(
            "access_device_endpoint", "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointModify, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointModify" = Field(
        type=OCI.AccessDeviceEndpointModify, required=False, mutable=False,
    )


class ServiceProviderAccessDeviceGetUserListRequest(OCIRequest):
    """
    Requests the list of users on a specified device.

    The response is either ``ServiceProviderAccessDeviceGetResponse()`` or
    ``ErrorResponse()``. The following elements are only used in HSS data mode and ignored
    in AS data mode: searchCriteriaAccessDeviceEndpointPrivateIdentity

    Attributes:
        service_provider_id: serviceProviderId
        device_name: deviceName
        response_size_limit: responseSizeLimit
        search_criteria_line_port_user_part: searchCriteriaLinePortUserPart
        search_criteria_line_port_domain: searchCriteriaLinePortDomain
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_exact_endpoint_type: searchCriteriaExactEndpointType
        search_criteria_exact_user_type: searchCriteriaExactUserType
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_port_number: searchCriteriaExactPortNumber
        search_criteria_access_device_endpoint_private_identity:
            searchCriteriaAccessDeviceEndpointPrivateIdentity
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("device_name", "deviceName", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_line_port_user_part", "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_domain", "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_endpoint_type", "searchCriteriaExactEndpointType",
            OCI.SearchCriteriaExactEndpointType, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_type", "searchCriteriaExactUserType",
            OCI.SearchCriteriaExactUserType, is_complex=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_port_number", "searchCriteriaExactPortNumber",
            OCI.SearchCriteriaExactPortNumber, is_complex=True,
        ),
        E(
            "search_criteria_access_device_endpoint_private_identity",
            "searchCriteriaAccessDeviceEndpointPrivateIdentity",
            OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity, is_complex=True,
            is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    device_name: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_line_port_user_part: "List[OCI.SearchCriteriaLinePortUserPart]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_domain: "List[OCI.SearchCriteriaLinePortDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_endpoint_type: "OCI.SearchCriteriaExactEndpointType" = Field(
        type=OCI.SearchCriteriaExactEndpointType, required=False, mutable=False,
    )
    search_criteria_exact_user_type: "OCI.SearchCriteriaExactUserType" = Field(
        type=OCI.SearchCriteriaExactUserType, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_port_number: "OCI.SearchCriteriaExactPortNumber" = Field(
        type=OCI.SearchCriteriaExactPortNumber, required=False, mutable=False,
    )
    search_criteria_access_device_endpoint_private_identity: "List[OCI.SearchCriteriaAccessDeviceEndpointPrivateIdentity]" = Field(
        type=list, required=False, mutable=False,
    )


class ServiceProviderCommunicationBarringProfileModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Profile.

    The priorities for OriginatingRules, RedirectingRules, CallMeNowRules and
    IncomingRules are requantized to consecutive integers as part of the modify.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: callMeNowDefaultAction
    callMeNowDefaultCallTimeout callMeNowRule applyToAttendedCallTransfers

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        new_name: newName
        description: description
        originating_default_action: originatingDefaultAction
        originating_default_treatment_id: originatingDefaultTreatmentId
        originating_default_transfer_number: originatingDefaultTransferNumber
        originating_default_call_timeout: originatingDefaultCallTimeout
        originating_rule: originatingRule
        redirecting_default_action: redirectingDefaultAction
        redirecting_default_call_timeout: redirectingDefaultCallTimeout
        redirecting_rule: redirectingRule
        call_me_now_default_action: callMeNowDefaultAction
        call_me_now_default_call_timeout: callMeNowDefaultCallTimeout
        call_me_now_rule: callMeNowRule
        incoming_default_action: incomingDefaultAction
        incoming_default_call_timeout: incomingDefaultCallTimeout
        incoming_rule: incomingRule
        become_default: becomeDefault
        apply_to_attended_call_transfers: applyToAttendedCallTransfers
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("originating_default_action", "originatingDefaultAction", str),
        E("originating_default_treatment_id", "originatingDefaultTreatmentId", str),
        E("originating_default_transfer_number", "originatingDefaultTransferNumber", str),
        E("originating_default_call_timeout", "originatingDefaultCallTimeout", int),
        E(
            "originating_rule", "originatingRule",
            OCI.ServiceProviderReplacementCommunicationBarringHierarchicalOriginatingRuleList,
            is_complex=True,
        ),
        E("redirecting_default_action", "redirectingDefaultAction", str),
        E("redirecting_default_call_timeout", "redirectingDefaultCallTimeout", int),
        E(
            "redirecting_rule", "redirectingRule",
            OCI.ServiceProviderReplacementCommunicationBarringHierarchicalRedirectingRuleList,
            is_complex=True,
        ),
        E("call_me_now_default_action", "callMeNowDefaultAction", str),
        E("call_me_now_default_call_timeout", "callMeNowDefaultCallTimeout", int),
        E(
            "call_me_now_rule", "callMeNowRule",
            OCI.ServiceProviderReplacementCommunicationBarringHierarchicalCallMeNowRuleList,
            is_complex=True,
        ),
        E("incoming_default_action", "incomingDefaultAction", str),
        E("incoming_default_call_timeout", "incomingDefaultCallTimeout", int),
        E(
            "incoming_rule", "incomingRule",
            OCI.ReplacementCommunicationBarringIncomingRuleList19sp1, is_complex=True,
        ),
        E("become_default", "becomeDefault", bool),
        E("apply_to_attended_call_transfers", "applyToAttendedCallTransfers", bool),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    originating_default_action: str = Field(type=str, required=False, mutable=False)
    originating_default_treatment_id: str = Field(type=str, required=False, mutable=False)
    originating_default_transfer_number: str = Field(type=str, required=False, mutable=False)
    originating_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    originating_rule: "OCI.ServiceProviderReplacementCommunicationBarringHierarchicalOriginatingRuleList" = Field(
        type=OCI.ServiceProviderReplacementCommunicationBarringHierarchicalOriginatingRuleList,
        required=False, mutable=False,
    )
    redirecting_default_action: str = Field(type=str, required=False, mutable=False)
    redirecting_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    redirecting_rule: "OCI.ServiceProviderReplacementCommunicationBarringHierarchicalRedirectingRuleList" = Field(
        type=OCI.ServiceProviderReplacementCommunicationBarringHierarchicalRedirectingRuleList,
        required=False, mutable=False,
    )
    call_me_now_default_action: str = Field(type=str, required=False, mutable=False)
    call_me_now_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    call_me_now_rule: "OCI.ServiceProviderReplacementCommunicationBarringHierarchicalCallMeNowRuleList" = Field(
        type=OCI.ServiceProviderReplacementCommunicationBarringHierarchicalCallMeNowRuleList,
        required=False, mutable=False,
    )
    incoming_default_action: str = Field(type=str, required=False, mutable=False)
    incoming_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    incoming_rule: "OCI.ReplacementCommunicationBarringIncomingRuleList19sp1" = Field(
        type=OCI.ReplacementCommunicationBarringIncomingRuleList19sp1, required=False,
        mutable=False,
    )
    become_default: bool = Field(type=bool, required=False, mutable=False)
    apply_to_attended_call_transfers: bool = Field(type=bool, required=False, mutable=False)


class ServiceProviderEndpointGetListRequest(OCIRequest):
    """
    Request to search endpoints in the service provider/enterprise.

    The response is either ``ServiceProviderEndpointGetListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_group_id: searchCriteriaGroupId
        search_criteria_line_port_user_part: searchCriteriaLinePortUserPart
        search_criteria_line_port_domain: searchCriteriaLinePortDomain
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_device_type: searchCriteriaDeviceType
        search_criteria_device_name: searchCriteriaDeviceName
        search_criteria_device_mac_address: searchCriteriaDeviceMACAddress
        search_criteria_device_net_address: searchCriteriaDeviceNetAddress
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "searchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_user_part", "searchCriteriaLinePortUserPart",
            OCI.SearchCriteriaLinePortUserPart, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_line_port_domain", "searchCriteriaLinePortDomain",
            OCI.SearchCriteriaLinePortDomain, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_type", "searchCriteriaDeviceType",
            OCI.SearchCriteriaDeviceType, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_name", "searchCriteriaDeviceName",
            OCI.SearchCriteriaDeviceName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_mac_address", "searchCriteriaDeviceMACAddress",
            OCI.SearchCriteriaDeviceMACAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_device_net_address", "searchCriteriaDeviceNetAddress",
            OCI.SearchCriteriaDeviceNetAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_user_part: "List[OCI.SearchCriteriaLinePortUserPart]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_line_port_domain: "List[OCI.SearchCriteriaLinePortDomain]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_type: "List[OCI.SearchCriteriaDeviceType]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_name: "List[OCI.SearchCriteriaDeviceName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_mac_address: "List[OCI.SearchCriteriaDeviceMACAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_device_net_address: "List[OCI.SearchCriteriaDeviceNetAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateAddRequest(OCIRequest):
    """
    Create a MWI Delivery to Mobile Endpoint Custom Template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        language: language
        type: type
        is_enabled: isEnabled
        template_body: templateBody
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("type", "type", str, is_required=True),
        E("is_enabled", "isEnabled", bool, is_required=True),
        E(
            "template_body", "templateBody", OCI.MWIDeliveryToMobileEndpointTemplateBody,
            is_complex=True, is_required=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    type: str = Field(type=str, required=True, mutable=False)
    is_enabled: bool = Field(type=bool, required=True, mutable=False)
    template_body: "OCI.MWIDeliveryToMobileEndpointTemplateBody" = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateBody, required=True, mutable=False,
    )


class ServiceProviderMWIDeliveryToMobileEndpointCustomTemplateModifyRequest(OCIRequest):
    """
    Modify a MWI Delivery to Mobile Endpoint Custom Template.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        language: language
        type: type
        is_enabled: isEnabled
        template_body: templateBody
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("language", "language", str, is_required=True),
        E("type", "type", str, is_required=True),
        E("is_enabled", "isEnabled", bool),
        E(
            "template_body", "templateBody", OCI.MWIDeliveryToMobileEndpointTemplateBody,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    language: str = Field(type=str, required=True, mutable=False)
    type: str = Field(type=str, required=True, mutable=False)
    is_enabled: bool = Field(type=bool, required=False, mutable=False)
    template_body: "OCI.MWIDeliveryToMobileEndpointTemplateBody" = Field(
        type=OCI.MWIDeliveryToMobileEndpointTemplateBody, required=False, mutable=False,
    )


class ServiceProviderServiceModifyAuthorizationListRequest(OCIRequest):
    """
    Requests to change the service provider's service authorization status.

    The boolean flags are used to authorize or unauthorize services.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_service_authorization: groupServiceAuthorization
        user_service_authorization: userServiceAuthorization
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E(
            "group_service_authorization", "groupServiceAuthorization",
            OCI.GroupServiceAuthorization, is_complex=True, is_array=True,
        ),
        E(
            "user_service_authorization", "userServiceAuthorization",
            OCI.UserServiceAuthorization, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_service_authorization: "List[OCI.GroupServiceAuthorization]" = Field(
        type=list, required=False, mutable=False,
    )
    user_service_authorization: "List[OCI.UserServiceAuthorization]" = Field(
        type=list, required=False, mutable=False,
    )


class SystemCommunicationBarringProfileModifyRequest(OCIRequest):
    """
    Modify an existing Communication Barring Profile.

    When the originatingDefaultAction is not Treatment, originatingDefaultTreatmentId will
    be automatically cleared.  Also when the action of originatingRule is not Treatment,
    treatmentId will be automatically cleared for the rule.  The priorities for
    IncomingRules are requantized to consecutive integers as part of the modify.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    following elements are only used in AS data mode: callMeNowDefaultAction
    callMeNowDefaultCallTimeout callMeNowRule applyToAttendedCallTransfers

    Attributes:
        name: name
        new_name: newName
        description: description
        originating_default_action: originatingDefaultAction
        originating_default_treatment_id: originatingDefaultTreatmentId
        originating_default_transfer_number: originatingDefaultTransferNumber
        originating_default_call_timeout: originatingDefaultCallTimeout
        originating_rule: originatingRule
        redirecting_default_action: redirectingDefaultAction
        redirecting_default_call_timeout: redirectingDefaultCallTimeout
        redirecting_rule: redirectingRule
        incoming_default_action: incomingDefaultAction
        incoming_default_call_timeout: incomingDefaultCallTimeout
        incoming_rule: incomingRule
        call_me_now_default_action: callMeNowDefaultAction
        call_me_now_default_call_timeout: callMeNowDefaultCallTimeout
        call_me_now_rule: callMeNowRule
        apply_to_attended_call_transfers: applyToAttendedCallTransfers
    """

    _ELEMENTS = (
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("originating_default_action", "originatingDefaultAction", str),
        E("originating_default_treatment_id", "originatingDefaultTreatmentId", str),
        E("originating_default_transfer_number", "originatingDefaultTransferNumber", str),
        E("originating_default_call_timeout", "originatingDefaultCallTimeout", int),
        E(
            "originating_rule", "originatingRule",
            OCI.ReplacementCommunicationBarringOriginatingRuleList, is_complex=True,
        ),
        E("redirecting_default_action", "redirectingDefaultAction", str),
        E("redirecting_default_call_timeout", "redirectingDefaultCallTimeout", int),
        E(
            "redirecting_rule", "redirectingRule",
            OCI.ReplacementCommunicationBarringRedirectingRuleList, is_complex=True,
        ),
        E("incoming_default_action", "incomingDefaultAction", str),
        E("incoming_default_call_timeout", "incomingDefaultCallTimeout", int),
        E(
            "incoming_rule", "incomingRule",
            OCI.ReplacementCommunicationBarringIncomingRuleList19sp1, is_complex=True,
        ),
        E("call_me_now_default_action", "callMeNowDefaultAction", str),
        E("call_me_now_default_call_timeout", "callMeNowDefaultCallTimeout", int),
        E(
            "call_me_now_rule", "callMeNowRule",
            OCI.ReplacementCommunicationBarringCallMeNowRuleList, is_complex=True,
        ),
        E("apply_to_attended_call_transfers", "applyToAttendedCallTransfers", bool),
    )

    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    originating_default_action: str = Field(type=str, required=False, mutable=False)
    originating_default_treatment_id: str = Field(type=str, required=False, mutable=False)
    originating_default_transfer_number: str = Field(type=str, required=False, mutable=False)
    originating_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    originating_rule: "OCI.ReplacementCommunicationBarringOriginatingRuleList" = Field(
        type=OCI.ReplacementCommunicationBarringOriginatingRuleList, required=False,
        mutable=False,
    )
    redirecting_default_action: str = Field(type=str, required=False, mutable=False)
    redirecting_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    redirecting_rule: "OCI.ReplacementCommunicationBarringRedirectingRuleList" = Field(
        type=OCI.ReplacementCommunicationBarringRedirectingRuleList, required=False,
        mutable=False,
    )
    incoming_default_action: str = Field(type=str, required=False, mutable=False)
    incoming_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    incoming_rule: "OCI.ReplacementCommunicationBarringIncomingRuleList19sp1" = Field(
        type=OCI.ReplacementCommunicationBarringIncomingRuleList19sp1, required=False,
        mutable=False,
    )
    call_me_now_default_action: str = Field(type=str, required=False, mutable=False)
    call_me_now_default_call_timeout: int = Field(type=int, required=False, mutable=False)
    call_me_now_rule: "OCI.ReplacementCommunicationBarringCallMeNowRuleList" = Field(
        type=OCI.ReplacementCommunicationBarringCallMeNowRuleList, required=False,
        mutable=False,
    )
    apply_to_attended_call_transfers: bool = Field(type=bool, required=False, mutable=False)


class SystemVerifyTranslationAndRoutingRequest(OCIRequest):
    """
    Represents a Verify Translation and Routing request which can be either a request
    containing parameters or a request containing a SIP message.

    Returns a ``SystemVerifyTranslationAndRoutingResponse()``.

    Attributes:
        parameters: parameters
        sip_message: sipMessage
    """

    _ELEMENTS = (
        E(
            "parameters", "parameters", OCI.VerifyTranslationAndRoutingParameters,
            is_complex=True,
        ),
        E("sip_message", "sipMessage", str),
    )

    parameters: "OCI.VerifyTranslationAndRoutingParameters" = Field(
        type=OCI.VerifyTranslationAndRoutingParameters, required=False, mutable=False,
    )
    sip_message: str = Field(type=str, required=False, mutable=False)


class UserAddRequest14(OCIRequest):
    """
    Request to add a user.

    The domain is required in the userId.  The password is not required if external
    authentication is enabled.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        user_id: userId
        last_name: lastName
        first_name: firstName
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        hiragana_last_name: hiraganaLastName
        hiragana_first_name: hiraganaFirstName
        phone_number: phoneNumber
        extension: extension
        calling_line_id_phone_number: callingLineIdPhoneNumber
        password: password
        department: department
        language: language
        time_zone: timeZone
        alias: alias
        access_device_endpoint: accessDeviceEndpoint
        trunk_group_device_endpoint: trunkGroupDeviceEndpoint
        title: title
        pager_phone_number: pagerPhoneNumber
        mobile_phone_number: mobilePhoneNumber
        email_address: emailAddress
        yahoo_id: yahooId
        address_location: addressLocation
        address: address
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
        E("last_name", "lastName", str, is_required=True),
        E("first_name", "firstName", str, is_required=True),
        E("calling_line_id_last_name", "callingLineIdLastName", str, is_required=True),
        E("calling_line_id_first_name", "callingLineIdFirstName", str, is_required=True),
        E("hiragana_last_name", "hiraganaLastName", str),
        E("hiragana_first_name", "hiraganaFirstName", str),
        E("phone_number", "phoneNumber", str),
        E("extension", "extension", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("password", "password", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("language", "language", str),
        E("time_zone", "timeZone", str),
        E("alias", "alias", str),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointAdd,
            is_complex=True,
        ),
        E(
            "trunk_group_device_endpoint", "trunkGroupDeviceEndpoint",
            OCI.TrunkGroupDeviceEndpointAdd, is_complex=True,
        ),
        E("title", "title", str),
        E("pager_phone_number", "pagerPhoneNumber", str),
        E("mobile_phone_number", "mobilePhoneNumber", str),
        E("email_address", "emailAddress", str),
        E("yahoo_id", "yahooId", str),
        E("address_location", "addressLocation", str),
        E("address", "address", OCI.StreetAddress, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)
    last_name: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=True, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=True, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=True, mutable=False)
    hiragana_last_name: str = Field(type=str, required=False, mutable=False)
    hiragana_first_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    language: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    alias: str = Field(type=str, required=False, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointAdd" = Field(
        type=OCI.AccessDeviceEndpointAdd, required=False, mutable=False,
    )
    trunk_group_device_endpoint: "OCI.TrunkGroupDeviceEndpointAdd" = Field(
        type=OCI.TrunkGroupDeviceEndpointAdd, required=False, mutable=False,
    )
    title: str = Field(type=str, required=False, mutable=False)
    pager_phone_number: str = Field(type=str, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)
    email_address: str = Field(type=str, required=False, mutable=False)
    yahoo_id: str = Field(type=str, required=False, mutable=False)
    address_location: str = Field(type=str, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )


class UserAddRequest14sp9(OCIRequest):
    """
    Replaced By ``UserAddRequest17sp4()`` Request to add a user.

    The domain is required in the userId.  The password is not required if external
    authentication is enabled.  The officeZoneName and primaryZoneName elements are
    ignored and provided here for backwards compatibility only.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        user_id: userId
        last_name: lastName
        first_name: firstName
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        hiragana_last_name: hiraganaLastName
        hiragana_first_name: hiraganaFirstName
        phone_number: phoneNumber
        extension: extension
        calling_line_id_phone_number: callingLineIdPhoneNumber
        password: password
        department: department
        language: language
        time_zone: timeZone
        alias: alias
        access_device_endpoint: accessDeviceEndpoint
        trunk_addressing: trunkAddressing
        title: title
        pager_phone_number: pagerPhoneNumber
        mobile_phone_number: mobilePhoneNumber
        email_address: emailAddress
        yahoo_id: yahooId
        address_location: addressLocation
        address: address
        network_class_of_service: networkClassOfService
        office_zone_name: officeZoneName
        primary_zone_name: primaryZoneName
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
        E("last_name", "lastName", str, is_required=True),
        E("first_name", "firstName", str, is_required=True),
        E("calling_line_id_last_name", "callingLineIdLastName", str, is_required=True),
        E("calling_line_id_first_name", "callingLineIdFirstName", str, is_required=True),
        E("hiragana_last_name", "hiraganaLastName", str),
        E("hiragana_first_name", "hiraganaFirstName", str),
        E("phone_number", "phoneNumber", str),
        E("extension", "extension", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("password", "password", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("language", "language", str),
        E("time_zone", "timeZone", str),
        E("alias", "alias", str),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointAdd,
            is_complex=True,
        ),
        E("trunk_addressing", "trunkAddressing", OCI.TrunkAddressingAdd, is_complex=True),
        E("title", "title", str),
        E("pager_phone_number", "pagerPhoneNumber", str),
        E("mobile_phone_number", "mobilePhoneNumber", str),
        E("email_address", "emailAddress", str),
        E("yahoo_id", "yahooId", str),
        E("address_location", "addressLocation", str),
        E("address", "address", OCI.StreetAddress, is_complex=True),
        E("network_class_of_service", "networkClassOfService", str),
        E("office_zone_name", "officeZoneName", str),
        E("primary_zone_name", "primaryZoneName", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)
    last_name: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=True, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=True, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=True, mutable=False)
    hiragana_last_name: str = Field(type=str, required=False, mutable=False)
    hiragana_first_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    language: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    alias: str = Field(type=str, required=False, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointAdd" = Field(
        type=OCI.AccessDeviceEndpointAdd, required=False, mutable=False,
    )
    trunk_addressing: "OCI.TrunkAddressingAdd" = Field(
        type=OCI.TrunkAddressingAdd, required=False, mutable=False,
    )
    title: str = Field(type=str, required=False, mutable=False)
    pager_phone_number: str = Field(type=str, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)
    email_address: str = Field(type=str, required=False, mutable=False)
    yahoo_id: str = Field(type=str, required=False, mutable=False)
    address_location: str = Field(type=str, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)
    office_zone_name: str = Field(type=str, required=False, mutable=False)
    primary_zone_name: str = Field(type=str, required=False, mutable=False)


class UserAddRequest17sp4(OCIRequest):
    """
    Request to add a user.

    The domain is required in the userId.  The password is not required if external
    authentication is enabled.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        user_id: userId
        last_name: lastName
        first_name: firstName
        calling_line_id_last_name: callingLineIdLastName
        calling_line_id_first_name: callingLineIdFirstName
        name_dialing_name: nameDialingName
        hiragana_last_name: hiraganaLastName
        hiragana_first_name: hiraganaFirstName
        phone_number: phoneNumber
        extension: extension
        calling_line_id_phone_number: callingLineIdPhoneNumber
        password: password
        department: department
        language: language
        time_zone: timeZone
        alias: alias
        access_device_endpoint: accessDeviceEndpoint
        trunk_addressing: trunkAddressing
        title: title
        pager_phone_number: pagerPhoneNumber
        mobile_phone_number: mobilePhoneNumber
        email_address: emailAddress
        yahoo_id: yahooId
        address_location: addressLocation
        address: address
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("user_id", "userId", str, is_required=True),
        E("last_name", "lastName", str, is_required=True),
        E("first_name", "firstName", str, is_required=True),
        E("calling_line_id_last_name", "callingLineIdLastName", str, is_required=True),
        E("calling_line_id_first_name", "callingLineIdFirstName", str, is_required=True),
        E("name_dialing_name", "nameDialingName", OCI.NameDialingName, is_complex=True),
        E("hiragana_last_name", "hiraganaLastName", str),
        E("hiragana_first_name", "hiraganaFirstName", str),
        E("phone_number", "phoneNumber", str),
        E("extension", "extension", str),
        E("calling_line_id_phone_number", "callingLineIdPhoneNumber", str),
        E("password", "password", str),
        E("department", "department", OCI.DepartmentKey, is_complex=True),
        E("language", "language", str),
        E("time_zone", "timeZone", str),
        E("alias", "alias", str),
        E(
            "access_device_endpoint", "accessDeviceEndpoint",
            OCI.AccessDeviceMultipleContactEndpointAdd, is_complex=True,
        ),
        E(
            "trunk_addressing", "trunkAddressing", OCI.TrunkAddressingMultipleContactAdd,
            is_complex=True,
        ),
        E("title", "title", str),
        E("pager_phone_number", "pagerPhoneNumber", str),
        E("mobile_phone_number", "mobilePhoneNumber", str),
        E("email_address", "emailAddress", str),
        E("yahoo_id", "yahooId", str),
        E("address_location", "addressLocation", str),
        E("address", "address", OCI.StreetAddress, is_complex=True),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    user_id: str = Field(type=str, required=True, mutable=False)
    last_name: str = Field(type=str, required=True, mutable=False)
    first_name: str = Field(type=str, required=True, mutable=False)
    calling_line_id_last_name: str = Field(type=str, required=True, mutable=False)
    calling_line_id_first_name: str = Field(type=str, required=True, mutable=False)
    name_dialing_name: "OCI.NameDialingName" = Field(
        type=OCI.NameDialingName, required=False, mutable=False,
    )
    hiragana_last_name: str = Field(type=str, required=False, mutable=False)
    hiragana_first_name: str = Field(type=str, required=False, mutable=False)
    phone_number: str = Field(type=str, required=False, mutable=False)
    extension: str = Field(type=str, required=False, mutable=False)
    calling_line_id_phone_number: str = Field(type=str, required=False, mutable=False)
    password: str = Field(type=str, required=False, mutable=False)
    department: "OCI.DepartmentKey" = Field(
        type=OCI.DepartmentKey, required=False, mutable=False,
    )
    language: str = Field(type=str, required=False, mutable=False)
    time_zone: str = Field(type=str, required=False, mutable=False)
    alias: str = Field(type=str, required=False, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceMultipleContactEndpointAdd" = Field(
        type=OCI.AccessDeviceMultipleContactEndpointAdd, required=False, mutable=False,
    )
    trunk_addressing: "OCI.TrunkAddressingMultipleContactAdd" = Field(
        type=OCI.TrunkAddressingMultipleContactAdd, required=False, mutable=False,
    )
    title: str = Field(type=str, required=False, mutable=False)
    pager_phone_number: str = Field(type=str, required=False, mutable=False)
    mobile_phone_number: str = Field(type=str, required=False, mutable=False)
    email_address: str = Field(type=str, required=False, mutable=False)
    yahoo_id: str = Field(type=str, required=False, mutable=False)
    address_location: str = Field(type=str, required=False, mutable=False)
    address: "OCI.StreetAddress" = Field(
        type=OCI.StreetAddress, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class UserAttendantConsoleGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for the Attendant Console service.

    The response is either ``UserAttendantConsoleGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserBroadWorksAnywhereModifySelectiveCriteriaRequest(OCIRequest):
    """
    Modify selective criteria for the user's BroadWorks Anywhere phone number.

    For the callToNumbers in the callToNumberList, the extension element is not used and
    the number element is only used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        phone_number: phoneNumber
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("phone_number", "phoneNumber", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    phone_number: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class UserBroadWorksMobilityMobileIdentityAddRequest(OCIRequest):
    """
    Add a mobile identity to the user's list of mobile identities.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The request
    fails when the devicesToRing is set to Mobile and the mobileNumberAlerted list is
    empty.

    Attributes:
        user_id: userId
        mobile_number: mobileNumber
        description: description
        is_primary: isPrimary
        enable_alerting: enableAlerting
        alert_agent_calls: alertAgentCalls
        alert_click_to_dial_calls: alertClickToDialCalls
        alert_group_paging_calls: alertGroupPagingCalls
        use_mobility_calling_line_id: useMobilityCallingLineID
        enable_diversion_inhibitor: enableDiversionInhibitor
        require_answer_confirmation: requireAnswerConfirmation
        broadworks_call_control: broadworksCallControl
        use_setting_level: useSettingLevel
        deny_call_originations: denyCallOriginations
        deny_call_terminations: denyCallTerminations
        devices_to_ring: devicesToRing
        include_shared_call_appearance: includeSharedCallAppearance
        include_broadworks_anywhere: includeBroadworksAnywhere
        include_executive_assistant: includeExecutiveAssistant
        mobile_number_alerted: mobileNumberAlerted
        enable_call_anchoring: enableCallAnchoring
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("mobile_number", "mobileNumber", str, is_required=True),
        E("description", "description", str),
        E("is_primary", "isPrimary", bool, is_required=True),
        E("enable_alerting", "enableAlerting", bool, is_required=True),
        E("alert_agent_calls", "alertAgentCalls", bool, is_required=True),
        E("alert_click_to_dial_calls", "alertClickToDialCalls", bool, is_required=True),
        E("alert_group_paging_calls", "alertGroupPagingCalls", bool, is_required=True),
        E("use_mobility_calling_line_id", "useMobilityCallingLineID", bool, is_required=True),
        E("enable_diversion_inhibitor", "enableDiversionInhibitor", bool, is_required=True),
        E("require_answer_confirmation", "requireAnswerConfirmation", bool, is_required=True),
        E("broadworks_call_control", "broadworksCallControl", bool, is_required=True),
        E("use_setting_level", "useSettingLevel", str, is_required=True),
        E("deny_call_originations", "denyCallOriginations", bool, is_required=True),
        E("deny_call_terminations", "denyCallTerminations", bool, is_required=True),
        E("devices_to_ring", "devicesToRing", str, is_required=True),
        E(
            "include_shared_call_appearance", "includeSharedCallAppearance", bool,
            is_required=True,
        ),
        E("include_broadworks_anywhere", "includeBroadworksAnywhere", bool, is_required=True),
        E("include_executive_assistant", "includeExecutiveAssistant", bool, is_required=True),
        E("mobile_number_alerted", "mobileNumberAlerted", str, is_array=True),
        E("enable_call_anchoring", "enableCallAnchoring", bool, is_required=True),
        E("time_schedule", "timeSchedule", OCI.ScheduleGlobalKey, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.ScheduleGlobalKey, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    mobile_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    is_primary: bool = Field(type=bool, required=True, mutable=False)
    enable_alerting: bool = Field(type=bool, required=True, mutable=False)
    alert_agent_calls: bool = Field(type=bool, required=True, mutable=False)
    alert_click_to_dial_calls: bool = Field(type=bool, required=True, mutable=False)
    alert_group_paging_calls: bool = Field(type=bool, required=True, mutable=False)
    use_mobility_calling_line_id: bool = Field(type=bool, required=True, mutable=False)
    enable_diversion_inhibitor: bool = Field(type=bool, required=True, mutable=False)
    require_answer_confirmation: bool = Field(type=bool, required=True, mutable=False)
    broadworks_call_control: bool = Field(type=bool, required=True, mutable=False)
    use_setting_level: str = Field(type=str, required=True, mutable=False)
    deny_call_originations: bool = Field(type=bool, required=True, mutable=False)
    deny_call_terminations: bool = Field(type=bool, required=True, mutable=False)
    devices_to_ring: str = Field(type=str, required=True, mutable=False)
    include_shared_call_appearance: bool = Field(type=bool, required=True, mutable=False)
    include_broadworks_anywhere: bool = Field(type=bool, required=True, mutable=False)
    include_executive_assistant: bool = Field(type=bool, required=True, mutable=False)
    mobile_number_alerted: "List[str]" = Field(type=list, required=False, mutable=False)
    enable_call_anchoring: bool = Field(type=bool, required=True, mutable=False)
    time_schedule: "OCI.ScheduleGlobalKey" = Field(
        type=OCI.ScheduleGlobalKey, required=False, mutable=False,
    )
    holiday_schedule: "OCI.ScheduleGlobalKey" = Field(
        type=OCI.ScheduleGlobalKey, required=False, mutable=False,
    )


class UserBroadWorksMobilityMobileIdentityModifyRequest(OCIRequest):
    """
    Modify the settings for one of the user's BroadWorks Mobility mobile Identities.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The request
    fails when enableAlerting or timeSchedule or holidaySchedule are included in the
    request when the user’s use mobile identity call anchoring controls is disabled.  The
    description, enableAlerting, alertAgentCalls, alertClickToDialCalls,
    alertGroupPagingCalls, useMobilityCallingLineID, enableDiversionInhibitor,
    requireAnswerConfirmation, broadworksCallControl, devicesToRing,
    includeSharedCallAppearance, includeBroadworksAnywhere, includeExecutiveAssistance,
    mobileNumberAlerted, enableCallAnchoring, timeSchedule and holidaySchedule parameters
    require an authorization level of User for modification when the BroadWorks Mobility
    service is on.  The isPrimary, useSettingLevel, denyCallOrigination, and
    denyCallTerminiations parameters require an authorization level of Group for
    modification.

    Attributes:
        user_id: userId
        mobile_number: mobileNumber
        description: description
        is_primary: isPrimary
        enable_alerting: enableAlerting
        alert_agent_calls: alertAgentCalls
        alert_click_to_dial_calls: alertClickToDialCalls
        alert_group_paging_calls: alertGroupPagingCalls
        use_mobility_calling_line_id: useMobilityCallingLineID
        enable_diversion_inhibitor: enableDiversionInhibitor
        require_answer_confirmation: requireAnswerConfirmation
        broadworks_call_control: broadworksCallControl
        use_setting_level: useSettingLevel
        deny_call_originations: denyCallOriginations
        deny_call_terminations: denyCallTerminations
        devices_to_ring: devicesToRing
        include_shared_call_appearance: includeSharedCallAppearance
        include_broadworks_anywhere: includeBroadworksAnywhere
        include_executive_assistant: includeExecutiveAssistant
        mobile_numbers_alerted: mobileNumbersAlerted
        enable_call_anchoring: enableCallAnchoring
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("mobile_number", "mobileNumber", str, is_required=True),
        E("description", "description", str),
        E("is_primary", "isPrimary", bool),
        E("enable_alerting", "enableAlerting", bool),
        E("alert_agent_calls", "alertAgentCalls", bool),
        E("alert_click_to_dial_calls", "alertClickToDialCalls", bool),
        E("alert_group_paging_calls", "alertGroupPagingCalls", bool),
        E("use_mobility_calling_line_id", "useMobilityCallingLineID", bool),
        E("enable_diversion_inhibitor", "enableDiversionInhibitor", bool),
        E("require_answer_confirmation", "requireAnswerConfirmation", bool),
        E("broadworks_call_control", "broadworksCallControl", bool),
        E("use_setting_level", "useSettingLevel", str),
        E("deny_call_originations", "denyCallOriginations", bool),
        E("deny_call_terminations", "denyCallTerminations", bool),
        E("devices_to_ring", "devicesToRing", str),
        E("include_shared_call_appearance", "includeSharedCallAppearance", bool),
        E("include_broadworks_anywhere", "includeBroadworksAnywhere", bool),
        E("include_executive_assistant", "includeExecutiveAssistant", bool),
        E(
            "mobile_numbers_alerted", "mobileNumbersAlerted",
            OCI.BroadWorksMobilityAlertingMobileNumberReplacementList, is_complex=True,
        ),
        E("enable_call_anchoring", "enableCallAnchoring", bool),
        E("time_schedule", "timeSchedule", OCI.ScheduleGlobalKey, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.ScheduleGlobalKey, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    mobile_number: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    is_primary: bool = Field(type=bool, required=False, mutable=False)
    enable_alerting: bool = Field(type=bool, required=False, mutable=False)
    alert_agent_calls: bool = Field(type=bool, required=False, mutable=False)
    alert_click_to_dial_calls: bool = Field(type=bool, required=False, mutable=False)
    alert_group_paging_calls: bool = Field(type=bool, required=False, mutable=False)
    use_mobility_calling_line_id: bool = Field(type=bool, required=False, mutable=False)
    enable_diversion_inhibitor: bool = Field(type=bool, required=False, mutable=False)
    require_answer_confirmation: bool = Field(type=bool, required=False, mutable=False)
    broadworks_call_control: bool = Field(type=bool, required=False, mutable=False)
    use_setting_level: str = Field(type=str, required=False, mutable=False)
    deny_call_originations: bool = Field(type=bool, required=False, mutable=False)
    deny_call_terminations: bool = Field(type=bool, required=False, mutable=False)
    devices_to_ring: str = Field(type=str, required=False, mutable=False)
    include_shared_call_appearance: bool = Field(type=bool, required=False, mutable=False)
    include_broadworks_anywhere: bool = Field(type=bool, required=False, mutable=False)
    include_executive_assistant: bool = Field(type=bool, required=False, mutable=False)
    mobile_numbers_alerted: "OCI.BroadWorksMobilityAlertingMobileNumberReplacementList" = Field(
        type=OCI.BroadWorksMobilityAlertingMobileNumberReplacementList, required=False,
        mutable=False,
    )
    enable_call_anchoring: bool = Field(type=bool, required=False, mutable=False)
    time_schedule: "OCI.ScheduleGlobalKey" = Field(
        type=OCI.ScheduleGlobalKey, required=False, mutable=False,
    )
    holiday_schedule: "OCI.ScheduleGlobalKey" = Field(
        type=OCI.ScheduleGlobalKey, required=False, mutable=False,
    )


class UserBroadWorksReceptionistEnterpriseGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for BroadWorks Receptionist - Enterprise monitoring.

    The response is either
    ``UserBroadWorksReceptionistEnterpriseGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserBroadWorksReceptionistOfficeGetAvailableUserListRequest(OCIRequest):
    """
    Get the Receptionist Office available user list.

    The response is either
    ``UserBroadWorksReceptionistOfficeGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserBroadWorksReceptionistSmallBusinessGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for the Receptionist Small Business service.

    The response is either
    ``UserBroadWorksReceptionistSmallBusinessGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserBusyLampFieldGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for the busy lamp field service.

    The response is either ``UserBusyLampFieldGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserCallCenterGetSupervisedAgentListRequest(OCIRequest):
    """
    Get a list of agents supervised by a supervisor on a given call center.

    The response is either a ``UserCallCenterGetSupervisedAgentListResponse()`` or an
    ``ErrorResponse()``. The search can be done using multiple criterias.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterias are included
    in the results.  If no search criteria is specified, all results are returned.  In all
    cases, if a responseSizeLimit is specified and the number of matching results is more
    than this limit, then an ``ErrorResponse()`` is returned.  Specifying
    searchCriteriaModeOr without any search criteria results in an ``ErrorResponse()``.

    Attributes:
        supervisor_user_id: supervisorUserId
        service_user_id: serviceUserId
        response_size_limit: responseSizeLimit
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    supervisor_user_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserCallForwardingSelectiveModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's call forwarding selective service.

    For the callToNumbers in the callToNumberList, the extension element is not used and
    the number element is only used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        forward_to_number_selection: forwardToNumberSelection
        forward_to_phone_number: forwardToPhoneNumber
        from_dn_criteria: fromDnCriteria
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("forward_to_number_selection", "forwardToNumberSelection", str),
        E("forward_to_phone_number", "forwardToPhoneNumber", str),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    forward_to_number_selection: str = Field(type=str, required=False, mutable=False)
    forward_to_phone_number: str = Field(type=str, required=False, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class UserCallMeNowModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's call me now service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        reject_call: rejectCall
        to_dn_criteria: toDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("reject_call", "rejectCall", bool),
        E("to_dn_criteria", "toDnCriteria", OCI.CallMeNowToDnCriteriaModify, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    reject_call: bool = Field(type=bool, required=False, mutable=False)
    to_dn_criteria: "OCI.CallMeNowToDnCriteriaModify" = Field(
        type=OCI.CallMeNowToDnCriteriaModify, required=False, mutable=False,
    )


class UserCallNotifyModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's call notify service.

    For the callToNumbers in the callToNumberList, the extension element is not used and
    the number element is only used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class UserCommPilotExpressModifyRequest(OCIRequest):
    """
    Modify the user's commPilot express service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Attributes:
        user_id: userId
        profile: profile
        available_in_office: availableInOffice
        available_out_of_office: availableOutOfOffice
        busy: busy
        unavailable: unavailable
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("profile", "profile", str),
        E(
            "available_in_office", "availableInOffice",
            OCI.CommPilotExpressAvailableInOfficeModify, is_complex=True,
        ),
        E(
            "available_out_of_office", "availableOutOfOffice",
            OCI.CommPilotExpressAvailableOutOfOfficeModify, is_complex=True,
        ),
        E("busy", "busy", OCI.CommPilotExpressBusyModify, is_complex=True),
        E(
            "unavailable", "unavailable", OCI.CommPilotExpressUnavailableModify,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    profile: str = Field(type=str, required=False, mutable=False)
    available_in_office: "OCI.CommPilotExpressAvailableInOfficeModify" = Field(
        type=OCI.CommPilotExpressAvailableInOfficeModify, required=False, mutable=False,
    )
    available_out_of_office: "OCI.CommPilotExpressAvailableOutOfOfficeModify" = Field(
        type=OCI.CommPilotExpressAvailableOutOfOfficeModify, required=False, mutable=False,
    )
    busy: "OCI.CommPilotExpressBusyModify" = Field(
        type=OCI.CommPilotExpressBusyModify, required=False, mutable=False,
    )
    unavailable: "OCI.CommPilotExpressUnavailableModify" = Field(
        type=OCI.CommPilotExpressUnavailableModify, required=False, mutable=False,
    )


class UserCustomRingbackUserAddCriteriaRequest(OCIRequest):
    """
    Add a criteria to the user's custom ringback service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
        call_waiting_audio_selection: callWaitingAudioSelection
        call_waiting_audio_file: callWaitingAudioFile
        call_waiting_video_selection: callWaitingVideoSelection
        call_waiting_video_file: callWaitingVideoFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
        E("audio_selection", "audioSelection", str, is_required=True),
        E("audio_file", "audioFile", OCI.ExtendedFileResource, is_complex=True),
        E("video_selection", "videoSelection", str, is_required=True),
        E("video_file", "videoFile", OCI.ExtendedFileResource, is_complex=True),
        E("call_waiting_audio_selection", "callWaitingAudioSelection", str),
        E(
            "call_waiting_audio_file", "callWaitingAudioFile", OCI.ExtendedFileResource,
            is_complex=True,
        ),
        E("call_waiting_video_selection", "callWaitingVideoSelection", str),
        E(
            "call_waiting_video_file", "callWaitingVideoFile", OCI.ExtendedFileResource,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )
    audio_selection: str = Field(type=str, required=True, mutable=False)
    audio_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=True, mutable=False)
    video_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )
    call_waiting_audio_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_audio_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )
    call_waiting_video_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_video_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )


class UserCustomRingbackUserAddCriteriaRequest16(OCIRequest):
    """
    Add a criteria to the user's custom ringback service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
        call_waiting_audio_selection: callWaitingAudioSelection
        call_waiting_audio_file: callWaitingAudioFile
        call_waiting_video_selection: callWaitingVideoSelection
        call_waiting_video_file: callWaitingVideoFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
        E("audio_selection", "audioSelection", str, is_required=True),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_selection", "videoSelection", str, is_required=True),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("call_waiting_audio_selection", "callWaitingAudioSelection", str),
        E(
            "call_waiting_audio_file", "callWaitingAudioFile",
            OCI.ExtendedMediaFileResource, is_complex=True,
        ),
        E("call_waiting_video_selection", "callWaitingVideoSelection", str),
        E(
            "call_waiting_video_file", "callWaitingVideoFile",
            OCI.ExtendedMediaFileResource, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )
    audio_selection: str = Field(type=str, required=True, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=True, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    call_waiting_audio_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    call_waiting_video_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class UserCustomRingbackUserAddCriteriaRequest20(OCIRequest):
    """
    Add a criteria to the user's custom ringback service.

    For the callToNumber, the extension element is not used and the number element is only
    used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        call_to_number: callToNumber
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
        call_waiting_audio_selection: callWaitingAudioSelection
        call_waiting_audio_file: callWaitingAudioFile
        call_waiting_video_selection: callWaitingVideoSelection
        call_waiting_video_file: callWaitingVideoFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool, is_required=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDn, is_complex=True,
            is_required=True,
        ),
        E("call_to_number", "callToNumber", OCI.CallToNumber, is_complex=True, is_array=True),
        E("audio_selection", "audioSelection", str, is_required=True),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileLevelResource20, is_complex=True),
        E("video_selection", "videoSelection", str, is_required=True),
        E("video_file", "videoFile", OCI.ExtendedMediaFileLevelResource20, is_complex=True),
        E("call_waiting_audio_selection", "callWaitingAudioSelection", str),
        E(
            "call_waiting_audio_file", "callWaitingAudioFile",
            OCI.ExtendedMediaFileLevelResource20, is_complex=True,
        ),
        E("call_waiting_video_selection", "callWaitingVideoSelection", str),
        E(
            "call_waiting_video_file", "callWaitingVideoFile",
            OCI.ExtendedMediaFileLevelResource20, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=True, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDn" = Field(
        type=OCI.CriteriaFromDn, required=True, mutable=False,
    )
    call_to_number: "List[OCI.CallToNumber]" = Field(type=list, required=False, mutable=False)
    audio_selection: str = Field(type=str, required=True, mutable=False)
    audio_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=True, mutable=False)
    video_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )
    call_waiting_audio_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_audio_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )
    call_waiting_video_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_video_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )


class UserCustomRingbackUserModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's custom ringback service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Replaced By: ``UserCustomRingbackUserModifyCriteriaRequest16()``

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
        call_waiting_audio_selection: callWaitingAudioSelection
        call_waiting_audio_file: callWaitingAudioFile
        call_waiting_video_selection: callWaitingVideoSelection
        call_waiting_video_file: callWaitingVideoFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedFileResource, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedFileResource, is_complex=True),
        E("call_waiting_audio_selection", "callWaitingAudioSelection", str),
        E(
            "call_waiting_audio_file", "callWaitingAudioFile", OCI.ExtendedFileResource,
            is_complex=True,
        ),
        E("call_waiting_video_selection", "callWaitingVideoSelection", str),
        E(
            "call_waiting_video_file", "callWaitingVideoFile", OCI.ExtendedFileResource,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )
    call_waiting_audio_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_audio_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )
    call_waiting_video_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_video_file: "OCI.ExtendedFileResource" = Field(
        type=OCI.ExtendedFileResource, required=False, mutable=False,
    )


class UserCustomRingbackUserModifyCriteriaRequest16(OCIRequest):
    """
    Modify a criteria for the user's custom ringback service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
        call_waiting_audio_selection: callWaitingAudioSelection
        call_waiting_audio_file: callWaitingAudioFile
        call_waiting_video_selection: callWaitingVideoSelection
        call_waiting_video_file: callWaitingVideoFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("call_waiting_audio_selection", "callWaitingAudioSelection", str),
        E(
            "call_waiting_audio_file", "callWaitingAudioFile",
            OCI.ExtendedMediaFileResource, is_complex=True,
        ),
        E("call_waiting_video_selection", "callWaitingVideoSelection", str),
        E(
            "call_waiting_video_file", "callWaitingVideoFile",
            OCI.ExtendedMediaFileResource, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    call_waiting_audio_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    call_waiting_video_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )


class UserCustomRingbackUserModifyCriteriaRequest20(OCIRequest):
    """
    Modify a criteria for the user's custom ringback service.

    For the callToNumbers in the callToNumberList, the extension element is not used and
    the number element is only used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        call_to_number_list: callToNumberList
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
        call_waiting_audio_selection: callWaitingAudioSelection
        call_waiting_audio_file: callWaitingAudioFile
        call_waiting_video_selection: callWaitingVideoSelection
        call_waiting_video_file: callWaitingVideoFile
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileLevelResource20, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileLevelResource20, is_complex=True),
        E("call_waiting_audio_selection", "callWaitingAudioSelection", str),
        E(
            "call_waiting_audio_file", "callWaitingAudioFile",
            OCI.ExtendedMediaFileLevelResource20, is_complex=True,
        ),
        E("call_waiting_video_selection", "callWaitingVideoSelection", str),
        E(
            "call_waiting_video_file", "callWaitingVideoFile",
            OCI.ExtendedMediaFileLevelResource20, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )
    call_waiting_audio_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_audio_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )
    call_waiting_video_selection: str = Field(type=str, required=False, mutable=False)
    call_waiting_video_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )


class UserEnhancedCallLogsGetListRequest17sp4(OCIRequest):
    """
    Request user's call logs.

    If the callLogType is not specified, all types of calls logs (placed, received,
    missed) are returned.  The filters "dateTimeRange", "numberFilter",
    "redirectedNumberFilter", accountAuthorizationCodeFilter" and ""subscriberType" are
    ignored if call logs are stored in CDS. When "ReceivedOrMissed" is specified as
    "callLogType" and call logs are stored in CDS, all call logs including placed will be
    returned.  It is possible to restrict the number of rows returned using
    responsePagingControl.  If responsePagingControl is not specified, the value of
    Enhanced Call Logs system parameter maxNonPagedResponseSize will control the maximum
    number of call logs can be returned.

    The response is either a ``UserEnhancedCallLogsGetListResponse17sp4()`` or an
    ``ErrorResponse()``. Replaced by UserEnhancedCallLogsGetListRequest17sp4V2. Originally
    deprecated in release 20.

    Attributes:
        user_id: userId
        call_log_type: callLogType
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=False, mutable=False,
    )


class UserEnhancedCallLogsGetListRequest20(OCIRequest):
    """
    Request user's call logs.

    If the callLogType is not specified, all types of calls logs (placed, received,
    missed) are returned.  The filters "dateTimeRange", "numberFilter",
    "redirectedNumberFilter", "accountAuthorizationCodeFilter"
    "callAuthorizationCodeFilter" and "subscriberType" are ignored if call logs are stored
    in CDS. When "ReceivedOrMissed" is specified as "callLogType" and call logs are stored
    in CDS, all call logs including placed will be returned.  It is possible to restrict
    the number of rows returned using responsePagingControl.  If responsePagingControl is
    not specified, the value of Enhanced Call Logs system parameter
    maxNonPagedResponseSize will control the maximum number of call logs can be returned.

    The response is either a ``UserEnhancedCallLogsGetListResponse20()`` or an
    ``ErrorResponse()``. The following elements are only used in AS data mode:
    callAuthorizationCodeFilter callSecurityClassification

    Attributes:
        user_id: userId
        call_log_type: callLogType
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        call_authorization_code_filter: callAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E(
            "call_authorization_code_filter", "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    call_authorization_code_filter: "OCI.EnhancedCallLogsCallAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=False, mutable=False,
    )


class UserEnhancedCallLogsGetListRequest21(OCIRequest):
    """
    Request user's call logs.

    If the callLogType is not specified, all types of calls logs (placed, received,
    missed) are returned.  The filters "dateTimeRange", "numberFilter",
    "redirectedNumberFilter", "accountAuthorizationCodeFilter"
    "callAuthorizationCodeFilter" and "subscriberType" are ignored if call logs are stored
    in CDS. When "ReceivedOrMissed" is specified as "callLogType" and call logs are stored
    in CDS, all call logs including placed will be returned.  It is possible to restrict
    the number of rows returned using responsePagingControl.  If responsePagingControl is
    not specified, the value of Enhanced Call Logs system parameter
    maxNonPagedResponseSize will control the maximum number of call logs can be returned.

    The response is either a ``UserEnhancedCallLogsGetListResponse21()`` or an
    ``ErrorResponse()``. The following elements are only used in AS data mode and ignored
    in HSS data mode: callAuthorizationCodeFilter

    Attributes:
        user_id: userId
        call_log_type: callLogType
        date_time_range: dateTimeRange
        number_filter: numberFilter
        redirected_number_filter: redirectedNumberFilter
        account_authorization_code_filter: accountAuthorizationCodeFilter
        call_authorization_code_filter: callAuthorizationCodeFilter
        subscriber_type: subscriberType
        response_paging_control: responsePagingControl
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("call_log_type", "callLogType", str),
        E(
            "date_time_range", "dateTimeRange", OCI.EnhancedCallLogsTimeRange,
            is_complex=True, is_required=True,
        ),
        E("number_filter", "numberFilter", OCI.EnhancedCallLogsNumberFilter, is_complex=True),
        E(
            "redirected_number_filter", "redirectedNumberFilter",
            OCI.EnhancedCallLogsRedirectedNumberFilter21, is_complex=True,
        ),
        E(
            "account_authorization_code_filter", "accountAuthorizationCodeFilter",
            OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, is_complex=True,
        ),
        E(
            "call_authorization_code_filter", "callAuthorizationCodeFilter",
            OCI.EnhancedCallLogsCallAuthorizationCodeFilter, is_complex=True,
        ),
        E("subscriber_type", "subscriberType", str),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_log_type: str = Field(type=str, required=False, mutable=False)
    date_time_range: "OCI.EnhancedCallLogsTimeRange" = Field(
        type=OCI.EnhancedCallLogsTimeRange, required=True, mutable=False,
    )
    number_filter: "OCI.EnhancedCallLogsNumberFilter" = Field(
        type=OCI.EnhancedCallLogsNumberFilter, required=False, mutable=False,
    )
    redirected_number_filter: "OCI.EnhancedCallLogsRedirectedNumberFilter21" = Field(
        type=OCI.EnhancedCallLogsRedirectedNumberFilter21, required=False, mutable=False,
    )
    account_authorization_code_filter: "OCI.EnhancedCallLogsAccountAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsAccountAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    call_authorization_code_filter: "OCI.EnhancedCallLogsCallAuthorizationCodeFilter" = Field(
        type=OCI.EnhancedCallLogsCallAuthorizationCodeFilter, required=False,
        mutable=False,
    )
    subscriber_type: str = Field(type=str, required=False, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=False, mutable=False,
    )


class UserExecutiveGetAvailableAssistantListRequest(OCIRequest):
    """
    Get a list of users that can be assigned to an executive.

    Searching for users by group only makes sense when the executive user is part of an
    Enterprise.

    The response is either ``UserExecutiveGetAvailableAssistantListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class UserExecutiveModifyFilteringSelectiveCriteriaRequest(OCIRequest):
    """
    Modify a filtering selective criteria for an executive.

    Both executive and the executive assistant can run this command.  For the
    callToNumbers in the callToNumberList, the extension element is not used and the
    number element is only used when the type is BroadWorks Mobility.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        filter: filter
        from_dn_criteria: fromDnCriteria
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("filter", "filter", bool),
        E(
            "from_dn_criteria", "fromDnCriteria",
            OCI.ExecutiveCallFilteringCriteriaFromDnModify, is_complex=True,
        ),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    filter: bool = Field(type=bool, required=False, mutable=False)
    from_dn_criteria: "OCI.ExecutiveCallFilteringCriteriaFromDnModify" = Field(
        type=OCI.ExecutiveCallFilteringCriteriaFromDnModify, required=False, mutable=False,
    )
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class UserFlexibleSeatingGuestGetAvailableHostListRequest(OCIRequest):
    """
    Get a list of hosts that can be assigned to flexible seating guests.

    The response is either ``UserFlexibleSeatingGuestGetAvailableUserListResponse()`` or
    ``ErrorResponse()``. The response will include active hosts based on the following
    criteria.  - host that has the equivalent device type as the guest, host already
    assigned to another guest and for a guest in a Service Provider host in the user’s
    group and for a user in an Enterprise a host within the user’s group and host in the
    user’s enterprise that has the accessLevel set to Enterprise.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class UserFlexibleSeatingGuestModifyRequest(OCIRequest):
    """
    Modify the user level data associated with flexible seating guest.

    accessDeviceEndpoint can only be configured by group or a higher level administrator.
    The request fails if isActive is set to false and the guest is associated to a host.
    The request fails when enableAssociationLimit, associationLimitHours,
    unlockPhonePINCode are changed when the guest is associated to a host.  The request
    fails when accessDeviceEndpoint is set in the request when the guest is associated to
    a host.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        enable_association_limit: enableAssociationLimit
        association_limit_hours: associationLimitHours
        unlock_phone_pin_code: unlockPhonePINCode
        access_device_endpoint: accessDeviceEndpoint
        host_user_id: hostUserId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("enable_association_limit", "enableAssociationLimit", bool),
        E("association_limit_hours", "associationLimitHours", int),
        E("unlock_phone_pin_code", "unlockPhonePINCode", str),
        E(
            "access_device_endpoint", "accessDeviceEndpoint",
            OCI.AccessDeviceMultipleContactEndpointModify, is_complex=True,
        ),
        E("host_user_id", "hostUserId", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    enable_association_limit: bool = Field(type=bool, required=False, mutable=False)
    association_limit_hours: int = Field(type=int, required=False, mutable=False)
    unlock_phone_pin_code: str = Field(type=str, required=False, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceMultipleContactEndpointModify" = Field(
        type=OCI.AccessDeviceMultipleContactEndpointModify, required=False, mutable=False,
    )
    host_user_id: str = Field(type=str, required=False, mutable=False)


class UserGetListInGroupRequest(OCIRequest):
    """
    Request the list of users in a 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 a ``UserGetListInGroupResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: GroupId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_in_trunk_group: searchCriteriaExactUserInTrunkGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "GroupId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_in_trunk_group",
            "searchCriteriaExactUserInTrunkGroup",
            OCI.SearchCriteriaExactUserInTrunkGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_in_trunk_group: "OCI.SearchCriteriaExactUserInTrunkGroup" = Field(
        type=OCI.SearchCriteriaExactUserInTrunkGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class UserGetListInServiceProviderRequest(OCIRequest):
    """
    Request the list of users 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 ``UserGetListInServiceProviderResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_exact_user_in_trunk_group: searchCriteriaExactUserInTrunkGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_in_trunk_group",
            "searchCriteriaExactUserInTrunkGroup",
            OCI.SearchCriteriaExactUserInTrunkGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_in_trunk_group: "OCI.SearchCriteriaExactUserInTrunkGroup" = Field(
        type=OCI.SearchCriteriaExactUserInTrunkGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class UserGetServiceInstanceListInServiceProviderRequest(OCIRequest):
    """
    Request the list of Service Instances in a service provider or an enterprise.

    It is possible to search by various criteria to restrict the number of rows returned.
    Multiple search criteria are logically ANDed together.
    searchCriteriaExactUserDepartment criteria is only applicable for an enterprise and is
    ignored if set for a service provider.

    The response is either a ``UserGetServiceInstanceListInServiceProviderResponse()`` or
    an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        response_size_limit: responseSizeLimit
        search_criteria_group_id: SearchCriteriaGroupId
        search_criteria_exact_service_type: SearchCriteriaExactServiceType
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_group_id", "SearchCriteriaGroupId",
            OCI.SearchCriteriaGroupId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_service_type", "SearchCriteriaExactServiceType",
            OCI.SearchCriteriaExactServiceType, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_group_id: "List[OCI.SearchCriteriaGroupId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_service_type: "OCI.SearchCriteriaExactServiceType" = Field(
        type=OCI.SearchCriteriaExactServiceType, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class UserHotelingGuestGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of users that can be assigned as Hoteling Guests.

    The response is either ``UserHotelingGuestGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )


class UserIncomingCallingPlanModifyRequest(OCIRequest):
    """
    Change the user's incoming calling plan settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.IncomingCallingPlanPermissionsModify, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.IncomingCallingPlanPermissionsModify" = Field(
        type=OCI.IncomingCallingPlanPermissionsModify, required=False, mutable=False,
    )


class UserMeetMeConferencingGetAvailableDelegateListRequest(OCIRequest):
    """
    Get a list of users that can be assigned as a delegate to a Meet-Me Conference.

    Searching for users, who are host on a Meet-Me Conferencing bridge.

    The response is either ``UserMeetMeConferencingGetAvailableDelegateListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        conference_key: conferenceKey
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "conference_key", "conferenceKey", OCI.MeetMeConferencingConferenceKey,
            is_complex=True, is_required=True,
        ),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    conference_key: "OCI.MeetMeConferencingConferenceKey" = Field(
        type=OCI.MeetMeConferencingConferenceKey, required=True, mutable=False,
    )
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )


class UserOutgoingCallingPlanDigitPlanCallMeNowModifyRequest(OCIRequest):
    """
    Modify the Call Me Now call permissions for digit patterns for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions" = Field(
        type=OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions, required=False,
        mutable=False,
    )


class UserOutgoingCallingPlanDigitPlanOriginatingModifyRequest(OCIRequest):
    """
    Modify the originating permissions for digit patterns for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions" = Field(
        type=OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions, required=False,
        mutable=False,
    )


class UserOutgoingCallingPlanDigitPlanRedirectingModifyRequest(OCIRequest):
    """
    Modify the redirecting permissions for digit patterns for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions" = Field(
        type=OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions, required=False,
        mutable=False,
    )


class UserOutgoingCallingPlanPinholeDigitPlanCallMeNowModifyRequest(OCIRequest):
    """
    Modify the Call Me Now permissions for Pinhole digit patterns for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions" = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions, required=False,
        mutable=False,
    )


class UserOutgoingCallingPlanPinholeDigitPlanOriginatingModifyRequest(OCIRequest):
    """
    Modify the originating permissions for Pinhole digit patterns for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions" = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions,
        required=False, mutable=False,
    )


class UserOutgoingCallingPlanPinholeDigitPlanRedirectingModifyRequest(OCIRequest):
    """
    Modify the redirecting permissions for Pinhole digit patterns for a user.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        use_custom_settings: useCustomSettings
        user_permissions: userPermissions
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("use_custom_settings", "useCustomSettings", bool),
        E(
            "user_permissions", "userPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    use_custom_settings: bool = Field(type=bool, required=False, mutable=False)
    user_permissions: "OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions" = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions,
        required=False, mutable=False,
    )


class UserPersonalAssistantCallToNumberModifyListRequest(OCIRequest):
    """
    Request to modify the user assigned Call to Number List information.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. For the
    callToNumbers in the callToNumberList, the extension element is not used and the
    number element is only used when the type is BroadWorks Mobility.

    Attributes:
        user_id: userId
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class UserPhoneDirectoryGetListRequest(OCIRequest):
    """
    Request a table containing the phone directory for a user's group.

    If the user's 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 includeCommonPhoneList is set to true). If the user's
    group is part of a service provider, the directory includes all users in the group and
    all entries in the common phone list (if includeCommonPhoneList is set to true) of the
    specified group.

    The response is either ``UserPhoneDirectoryGetListResponse()`` or ``ErrorResponse()``.
    If the searchCriteriaModeOr is present, any result matching any one criteria is
    included in the results.  Otherwise, only results matching all the search criterias
    are included in the results.  If no search criteria is specified, all results are
    returned.  In all cases, if a responseSizeLimit is specified and the number of
    matching results is more than this limit, then an ``ErrorResponse()`` is returned.
    Specifying searchCriteriaModeOr without any search criteria results in an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        include_common_phone_list: includeCommonPhoneList
        response_size_limit: responseSizeLimit
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_custom_contact_directory:
            searchCriteriaExactCustomContactDirectory
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("include_common_phone_list", "includeCommonPhoneList", bool, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_custom_contact_directory",
            "searchCriteriaExactCustomContactDirectory",
            OCI.SearchCriteriaExactCustomContactDirectory, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    include_common_phone_list: bool = Field(type=bool, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_custom_contact_directory: "OCI.SearchCriteriaExactCustomContactDirectory" = Field(
        type=OCI.SearchCriteriaExactCustomContactDirectory, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserPhoneDirectoryGetPagedListRequest(OCIRequest):
    """
    Request a table containing the phone directory for a user.

    Setting isEnterpriseRequested to true will return enterprise directory members in the
    response if the user is in an enterprise.  Otherwise, just the group directory members
    for a user are returned in the response.

    The response is either ``UserPhoneDirectoryGetPagedListResponse()`` or
    ``ErrorResponse()``. The search can be done using multiple criterias.  If the
    searchCriteriaModeOr is present, any result matching any one criteria is included in
    the results.  Otherwise, only results matching all the search criterias are included
    in the results.  If no search criteria is specified, all results are returned.  In all
    cases, if a responseSizeLimit is specified and the number of matching results is more
    than this limit, then an ``ErrorResponse()`` is returned.  Specifying
    searchCriteriaModeOr without any search criteria results in an ``ErrorResponse()``.
    The boolean sortByFirstName is optional.  If it is not specified, the response is
    sorted by Last Name.

    Attributes:
        user_id: userId
        is_enterprise_info_requested: isEnterpriseInfoRequested
        response_paging_control: responsePagingControl
        search_criteria_mode_or: searchCriteriaModeOr
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_dn: searchCriteriaDn
        search_criteria_group_location_code: searchCriteriaGroupLocationCode
        search_criteria_extension: searchCriteriaExtension
        search_criteria_mobile_phone_number: searchCriteriaMobilePhoneNumber
        search_criteria_email_address: searchCriteriaEmailAddress
        search_criteria_yahoo_id: searchCriteriaYahooId
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_imp_id: searchCriteriaImpId
        sort_by_first_name: sortByFirstName
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "is_enterprise_info_requested", "isEnterpriseInfoRequested", bool,
            is_required=True,
        ),
        E(
            "response_paging_control", "responsePagingControl", OCI.ResponsePagingControl,
            is_complex=True, is_required=True,
        ),
        E("search_criteria_mode_or", "searchCriteriaModeOr", bool),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_group_location_code", "searchCriteriaGroupLocationCode",
            OCI.SearchCriteriaGroupLocationCode, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_mobile_phone_number", "searchCriteriaMobilePhoneNumber",
            OCI.SearchCriteriaMobilePhoneNumber, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_email_address", "searchCriteriaEmailAddress",
            OCI.SearchCriteriaEmailAddress, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_yahoo_id", "searchCriteriaYahooId",
            OCI.SearchCriteriaYahooId, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
        E("sort_by_first_name", "sortByFirstName", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_enterprise_info_requested: bool = Field(type=bool, required=True, mutable=False)
    response_paging_control: "OCI.ResponsePagingControl" = Field(
        type=OCI.ResponsePagingControl, required=True, mutable=False,
    )
    search_criteria_mode_or: bool = Field(type=bool, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_group_location_code: "List[OCI.SearchCriteriaGroupLocationCode]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_mobile_phone_number: "List[OCI.SearchCriteriaMobilePhoneNumber]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_email_address: "List[OCI.SearchCriteriaEmailAddress]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_yahoo_id: "List[OCI.SearchCriteriaYahooId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )
    sort_by_first_name: bool = Field(type=bool, required=False, mutable=False)


class UserPreAlertingAnnouncementModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's pre-alerting service.

    For the callToNumbers in the callToNumberList, the extension element is not used and
    the number element is only used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class UserPreAlertingAnnouncementModifyRequest(OCIRequest):
    """
    Modify the user's pre-alerting service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileResource, is_complex=True),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserPreAlertingAnnouncementModifyRequest20(OCIRequest):
    """
    Modify the user's pre-alerting service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        audio_selection: audioSelection
        audio_file: audioFile
        video_selection: videoSelection
        video_file: videoFile
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("audio_selection", "audioSelection", str),
        E("audio_file", "audioFile", OCI.ExtendedMediaFileLevelResource20, is_complex=True),
        E("video_selection", "videoSelection", str),
        E("video_file", "videoFile", OCI.ExtendedMediaFileLevelResource20, is_complex=True),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    audio_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )
    video_selection: str = Field(type=str, required=False, mutable=False)
    video_file: "OCI.ExtendedMediaFileLevelResource20" = Field(
        type=OCI.ExtendedMediaFileLevelResource20, required=False, mutable=False,
    )
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserPriorityAlertModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's priority alert service.

    For the callToNumbers in the callToNumberList, the extension element is not used and
    the number element is only used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria", OCI.PriorityAlertCriteriaFromDnModify,
            is_complex=True,
        ),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.PriorityAlertCriteriaFromDnModify" = Field(
        type=OCI.PriorityAlertCriteriaFromDnModify, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class UserPrivacyGetAvailableMonitorsUserListRequest(OCIRequest):
    """
    Retrieves a list of users in the enterprise or group available for phone status
    monitoring the user specified in the userId element.

    The response is either ``UserPrivacyGetAvailableMonitorsUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserPushToTalkGetAvailableUserListRequest(OCIRequest):
    """
    Get a list of available users for the push to talk service.

    The response is either ``UserPushToTalkGetAvailableUserListResponse()`` or
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        response_size_limit: responseSizeLimit
        search_criteria_user_last_name: searchCriteriaUserLastName
        search_criteria_user_first_name: searchCriteriaUserFirstName
        search_criteria_exact_user_department: searchCriteriaExactUserDepartment
        search_criteria_exact_user_group: searchCriteriaExactUserGroup
        search_criteria_user_id: searchCriteriaUserId
        search_criteria_dn: searchCriteriaDn
        search_criteria_extension: searchCriteriaExtension
        search_criteria_imp_id: searchCriteriaImpId
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("response_size_limit", "responseSizeLimit", int),
        E(
            "search_criteria_user_last_name", "searchCriteriaUserLastName",
            OCI.SearchCriteriaUserLastName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_user_first_name", "searchCriteriaUserFirstName",
            OCI.SearchCriteriaUserFirstName, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_exact_user_department", "searchCriteriaExactUserDepartment",
            OCI.SearchCriteriaExactUserDepartment, is_complex=True,
        ),
        E(
            "search_criteria_exact_user_group", "searchCriteriaExactUserGroup",
            OCI.SearchCriteriaExactUserGroup, is_complex=True,
        ),
        E(
            "search_criteria_user_id", "searchCriteriaUserId", OCI.SearchCriteriaUserId,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_dn", "searchCriteriaDn", OCI.SearchCriteriaDn,
            is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_extension", "searchCriteriaExtension",
            OCI.SearchCriteriaExtension, is_complex=True, is_array=True,
        ),
        E(
            "search_criteria_imp_id", "searchCriteriaImpId", OCI.SearchCriteriaImpId,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    response_size_limit: int = Field(type=int, required=False, mutable=False)
    search_criteria_user_last_name: "List[OCI.SearchCriteriaUserLastName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_user_first_name: "List[OCI.SearchCriteriaUserFirstName]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_exact_user_department: "OCI.SearchCriteriaExactUserDepartment" = Field(
        type=OCI.SearchCriteriaExactUserDepartment, required=False, mutable=False,
    )
    search_criteria_exact_user_group: "OCI.SearchCriteriaExactUserGroup" = Field(
        type=OCI.SearchCriteriaExactUserGroup, required=False, mutable=False,
    )
    search_criteria_user_id: "List[OCI.SearchCriteriaUserId]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_dn: "List[OCI.SearchCriteriaDn]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_extension: "List[OCI.SearchCriteriaExtension]" = Field(
        type=list, required=False, mutable=False,
    )
    search_criteria_imp_id: "List[OCI.SearchCriteriaImpId]" = Field(
        type=list, required=False, mutable=False,
    )


class UserScheduleGetEventDetailListRequest(OCIRequest):
    """
    Request the list of schedules viewable by a User.

    The list can be filtered by schedule type.

    The response is either a ``UserScheduleGetEventListForGroupResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        schedule_global_key: scheduleGlobalKey
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "schedule_global_key", "scheduleGlobalKey", OCI.ScheduleGlobalKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    schedule_global_key: "OCI.ScheduleGlobalKey" = Field(
        type=OCI.ScheduleGlobalKey, required=True, mutable=False,
    )


class UserSelectiveCallAcceptanceModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's selective call acceptance service.

    For the callToNumbers in the callToNumberList, the extension element is not used and
    the number element is only used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class UserSelectiveCallRejectionModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's selective call rejection service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)


class UserSelectiveCallRejectionModifyCriteriaRequest16(OCIRequest):
    """
    Modify a criteria for the user's selective call rejection service.

    For the callToNumbers in the callToNumberList, the extension element is not used and
    the number element is only used when the type is BroadWorks Mobility.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        call_to_number_list: callToNumberList
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E(
            "from_dn_criteria", "fromDnCriteria",
            OCI.SelectiveCallRejectionCriteriaCallTypeModify, is_complex=True,
        ),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E(
            "call_to_number_list", "callToNumberList", OCI.ReplacementCallToNumberList,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.SelectiveCallRejectionCriteriaCallTypeModify" = Field(
        type=OCI.SelectiveCallRejectionCriteriaCallTypeModify, required=False,
        mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    call_to_number_list: "OCI.ReplacementCallToNumberList" = Field(
        type=OCI.ReplacementCallToNumberList, required=False, mutable=False,
    )


class UserSequentialRingModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's sequential ring service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        from_dn_criteria: fromDnCriteria
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)


class UserSharedCallAppearanceAddEndpointRequest14(OCIRequest):
    """
    Associate an access device instance to the user's Shared Call Appearance.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device_endpoint: accessDeviceEndpoint
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointAdd,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointAdd" = Field(
        type=OCI.AccessDeviceEndpointAdd, required=True, mutable=False,
    )


class UserSharedCallAppearanceAddEndpointRequest14sp2(OCIRequest):
    """
    Associate an access device instance to the user's Shared Call Appearance.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device_endpoint: accessDeviceEndpoint
        is_active: isActive
        allow_origination: allowOrigination
        allow_termination: allowTermination
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointAdd,
            is_complex=True, is_required=True,
        ),
        E("is_active", "isActive", bool, is_required=True),
        E("allow_origination", "allowOrigination", bool, is_required=True),
        E("allow_termination", "allowTermination", bool, is_required=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointAdd" = Field(
        type=OCI.AccessDeviceEndpointAdd, required=True, mutable=False,
    )
    is_active: bool = Field(type=bool, required=True, mutable=False)
    allow_origination: bool = Field(type=bool, required=True, mutable=False)
    allow_termination: bool = Field(type=bool, required=True, mutable=False)


class UserSharedCallAppearanceDeleteEndpointListRequest14(OCIRequest):
    """
    Disassociate one or more of a user's Shared Call Appearance endpoints.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device_endpoint: accessDeviceEndpoint
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointKey" = Field(
        type=OCI.AccessDeviceEndpointKey, required=True, mutable=False,
    )


class UserSharedCallAppearanceGetEndpointRequest(OCIRequest):
    """
    Get the user's Shared Call Appearance endpoint setting.

    The response is either a ``UserSharedCallAppearanceGetEndpointResponse()`` or an
    ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device_endpoint: accessDeviceEndpoint
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointKey,
            is_complex=True, is_required=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointKey" = Field(
        type=OCI.AccessDeviceEndpointKey, required=True, mutable=False,
    )


class UserSharedCallAppearanceModifyEndpointRequest(OCIRequest):
    """
    Associate/Disassociate an access device instance to the user's Shared Call Appearance.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        access_device_endpoint: accessDeviceEndpoint
        is_active: isActive
        allow_origination: allowOrigination
        allow_termination: allowTermination
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E(
            "access_device_endpoint", "accessDeviceEndpoint", OCI.AccessDeviceEndpointKey,
            is_complex=True, is_required=True,
        ),
        E("is_active", "isActive", bool),
        E("allow_origination", "allowOrigination", bool),
        E("allow_termination", "allowTermination", bool),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointKey" = Field(
        type=OCI.AccessDeviceEndpointKey, required=True, mutable=False,
    )
    is_active: bool = Field(type=bool, required=False, mutable=False)
    allow_origination: bool = Field(type=bool, required=False, mutable=False)
    allow_termination: bool = Field(type=bool, required=False, mutable=False)


class UserSimultaneousRingFamilyModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's simultaneous ring family service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )


class UserSimultaneousRingFamilyModifyRequest17(OCIRequest):
    """
    Modify the user's simultaneous ring family service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        do_not_ring_if_on_call: doNotRingIfOnCall
        simultaneous_ring_number_list: simultaneousRingNumberList
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("do_not_ring_if_on_call", "doNotRingIfOnCall", bool),
        E(
            "simultaneous_ring_number_list", "simultaneousRingNumberList",
            OCI.SimultaneousRingReplacementNumberList, is_complex=True,
        ),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    do_not_ring_if_on_call: bool = Field(type=bool, required=False, mutable=False)
    simultaneous_ring_number_list: "OCI.SimultaneousRingReplacementNumberList" = Field(
        type=OCI.SimultaneousRingReplacementNumberList, required=False, mutable=False,
    )
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserSimultaneousRingPersonalModifyCriteriaRequest(OCIRequest):
    """
    Modify a criteria for the user's simultaneous ring personal service.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        criteria_name: criteriaName
        new_criteria_name: newCriteriaName
        time_schedule: timeSchedule
        holiday_schedule: holidaySchedule
        blacklisted: blacklisted
        from_dn_criteria: fromDnCriteria
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("criteria_name", "criteriaName", str, is_required=True),
        E("new_criteria_name", "newCriteriaName", str),
        E("time_schedule", "timeSchedule", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("blacklisted", "blacklisted", bool),
        E("from_dn_criteria", "fromDnCriteria", OCI.CriteriaFromDnModify, is_complex=True),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    criteria_name: str = Field(type=str, required=True, mutable=False)
    new_criteria_name: str = Field(type=str, required=False, mutable=False)
    time_schedule: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    blacklisted: bool = Field(type=bool, required=False, mutable=False)
    from_dn_criteria: "OCI.CriteriaFromDnModify" = Field(
        type=OCI.CriteriaFromDnModify, required=False, mutable=False,
    )


class UserSimultaneousRingPersonalModifyRequest17(OCIRequest):
    """
    Modify the user's simultaneous ring personal service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        do_not_ring_if_on_call: doNotRingIfOnCall
        simultaneous_ring_number_list: simultaneousRingNumberList
        criteria_activation: criteriaActivation
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("do_not_ring_if_on_call", "doNotRingIfOnCall", bool),
        E(
            "simultaneous_ring_number_list", "simultaneousRingNumberList",
            OCI.SimultaneousRingReplacementNumberList, is_complex=True,
        ),
        E(
            "criteria_activation", "criteriaActivation", OCI.CriteriaActivation,
            is_complex=True, is_array=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    do_not_ring_if_on_call: bool = Field(type=bool, required=False, mutable=False)
    simultaneous_ring_number_list: "OCI.SimultaneousRingReplacementNumberList" = Field(
        type=OCI.SimultaneousRingReplacementNumberList, required=False, mutable=False,
    )
    criteria_activation: "List[OCI.CriteriaActivation]" = Field(
        type=list, required=False, mutable=False,
    )


class UserVideoAddOnModifyRequest14(OCIRequest):
    """
    Modify the user's Video Add-On service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        is_active: isActive
        max_originating_call_delay_seconds: maxOriginatingCallDelaySeconds
        access_device_endpoint: accessDeviceEndpoint
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("is_active", "isActive", bool),
        E("max_originating_call_delay_seconds", "maxOriginatingCallDelaySeconds", int),
        E(
            "access_device_endpoint", "accessDeviceEndpoint",
            OCI.AccessDeviceEndpointModify, is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    is_active: bool = Field(type=bool, required=False, mutable=False)
    max_originating_call_delay_seconds: int = Field(type=int, required=False, mutable=False)
    access_device_endpoint: "OCI.AccessDeviceEndpointModify" = Field(
        type=OCI.AccessDeviceEndpointModify, required=False, mutable=False,
    )


class UserVoiceMessagingUserModifyGreetingRequest(OCIRequest):
    """
    Modify the user's voice messaging greeting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.

    Replaced By: ``UserVoiceMessagingUserModifyGreetingRequest16()``

    Attributes:
        user_id: userId
        busy_announcement_selection: busyAnnouncementSelection
        busy_personal_audio_file: busyPersonalAudioFile
        busy_personal_video_file: busyPersonalVideoFile
        no_answer_announcement_selection: noAnswerAnnouncementSelection
        no_answer_personal_audio_file: noAnswerPersonalAudioFile
        no_answer_personal_video_file: noAnswerPersonalVideoFile
        no_answer_alternate_greeting01: noAnswerAlternateGreeting01
        no_answer_alternate_greeting02: noAnswerAlternateGreeting02
        no_answer_alternate_greeting03: noAnswerAlternateGreeting03
        no_answer_number_of_rings: noAnswerNumberOfRings
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("busy_announcement_selection", "busyAnnouncementSelection", str),
        E(
            "busy_personal_audio_file", "busyPersonalAudioFile", OCI.LabeledFileResource,
            is_complex=True,
        ),
        E(
            "busy_personal_video_file", "busyPersonalVideoFile", OCI.LabeledFileResource,
            is_complex=True,
        ),
        E("no_answer_announcement_selection", "noAnswerAnnouncementSelection", str),
        E(
            "no_answer_personal_audio_file", "noAnswerPersonalAudioFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E(
            "no_answer_personal_video_file", "noAnswerPersonalVideoFile",
            OCI.LabeledFileResource, is_complex=True,
        ),
        E(
            "no_answer_alternate_greeting01", "noAnswerAlternateGreeting01",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify, is_complex=True,
        ),
        E(
            "no_answer_alternate_greeting02", "noAnswerAlternateGreeting02",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify, is_complex=True,
        ),
        E(
            "no_answer_alternate_greeting03", "noAnswerAlternateGreeting03",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify, is_complex=True,
        ),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    busy_announcement_selection: str = Field(type=str, required=False, mutable=False)
    busy_personal_audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    busy_personal_video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    no_answer_announcement_selection: str = Field(type=str, required=False, mutable=False)
    no_answer_personal_audio_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    no_answer_personal_video_file: "OCI.LabeledFileResource" = Field(
        type=OCI.LabeledFileResource, required=False, mutable=False,
    )
    no_answer_alternate_greeting01: "OCI.VoiceMessagingAlternateNoAnswerGreetingModify" = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify, required=False,
        mutable=False,
    )
    no_answer_alternate_greeting02: "OCI.VoiceMessagingAlternateNoAnswerGreetingModify" = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify, required=False,
        mutable=False,
    )
    no_answer_alternate_greeting03: "OCI.VoiceMessagingAlternateNoAnswerGreetingModify" = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify, required=False,
        mutable=False,
    )
    no_answer_number_of_rings: int = Field(type=int, required=False, mutable=False)


class UserVoiceMessagingUserModifyGreetingRequest16(OCIRequest):
    """
    Modify the user's voice messaging greeting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.  The following elements are
    only used in AS data mode: disableMessageDeposit disableMessageDepositAction
    greetingOnlyForwardDestination Replaced by
    ``UserVoiceMessagingUserModifyGreetingRequest20()``

    Attributes:
        user_id: userId
        busy_announcement_selection: busyAnnouncementSelection
        busy_personal_audio_file: busyPersonalAudioFile
        busy_personal_video_file: busyPersonalVideoFile
        no_answer_announcement_selection: noAnswerAnnouncementSelection
        no_answer_personal_audio_file: noAnswerPersonalAudioFile
        no_answer_personal_video_file: noAnswerPersonalVideoFile
        extended_away_enabled: extendedAwayEnabled
        extended_away_disable_message_deposit: extendedAwayDisableMessageDeposit
        extended_away_audio_file: extendedAwayAudioFile
        extended_away_video_file: extendedAwayVideoFile
        no_answer_alternate_greeting01: noAnswerAlternateGreeting01
        no_answer_alternate_greeting02: noAnswerAlternateGreeting02
        no_answer_alternate_greeting03: noAnswerAlternateGreeting03
        no_answer_number_of_rings: noAnswerNumberOfRings
        disable_message_deposit: disableMessageDeposit
        disable_message_deposit_action: disableMessageDepositAction
        greeting_only_forward_destination: greetingOnlyForwardDestination
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("busy_announcement_selection", "busyAnnouncementSelection", str),
        E(
            "busy_personal_audio_file", "busyPersonalAudioFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E(
            "busy_personal_video_file", "busyPersonalVideoFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E("no_answer_announcement_selection", "noAnswerAnnouncementSelection", str),
        E(
            "no_answer_personal_audio_file", "noAnswerPersonalAudioFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E(
            "no_answer_personal_video_file", "noAnswerPersonalVideoFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E("extended_away_enabled", "extendedAwayEnabled", bool),
        E("extended_away_disable_message_deposit", "extendedAwayDisableMessageDeposit", bool),
        E(
            "extended_away_audio_file", "extendedAwayAudioFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E(
            "extended_away_video_file", "extendedAwayVideoFile",
            OCI.LabeledMediaFileResource, is_complex=True,
        ),
        E(
            "no_answer_alternate_greeting01", "noAnswerAlternateGreeting01",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify16, is_complex=True,
        ),
        E(
            "no_answer_alternate_greeting02", "noAnswerAlternateGreeting02",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify16, is_complex=True,
        ),
        E(
            "no_answer_alternate_greeting03", "noAnswerAlternateGreeting03",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify16, is_complex=True,
        ),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int),
        E("disable_message_deposit", "disableMessageDeposit", bool),
        E("disable_message_deposit_action", "disableMessageDepositAction", str),
        E("greeting_only_forward_destination", "greetingOnlyForwardDestination", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    busy_announcement_selection: str = Field(type=str, required=False, mutable=False)
    busy_personal_audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    busy_personal_video_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    no_answer_announcement_selection: str = Field(type=str, required=False, mutable=False)
    no_answer_personal_audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    no_answer_personal_video_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    extended_away_enabled: bool = Field(type=bool, required=False, mutable=False)
    extended_away_disable_message_deposit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    extended_away_audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    extended_away_video_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    no_answer_alternate_greeting01: "OCI.VoiceMessagingAlternateNoAnswerGreetingModify16" = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify16, required=False,
        mutable=False,
    )
    no_answer_alternate_greeting02: "OCI.VoiceMessagingAlternateNoAnswerGreetingModify16" = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify16, required=False,
        mutable=False,
    )
    no_answer_alternate_greeting03: "OCI.VoiceMessagingAlternateNoAnswerGreetingModify16" = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify16, required=False,
        mutable=False,
    )
    no_answer_number_of_rings: int = Field(type=int, required=False, mutable=False)
    disable_message_deposit: bool = Field(type=bool, required=False, mutable=False)
    disable_message_deposit_action: str = Field(type=str, required=False, mutable=False)
    greeting_only_forward_destination: str = Field(type=str, required=False, mutable=False)


class UserVoiceMessagingUserModifyGreetingRequest20(OCIRequest):
    """
    Modify the user's voice messaging greeting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. Engineering
    Note: This command is used internally by Call Processing.  The following elements are
    only used in AS data mode: disableMessageDeposit disableMessageDepositAction
    greetingOnlyForwardDestination

    Attributes:
        user_id: userId
        busy_announcement_selection: busyAnnouncementSelection
        busy_personal_audio_file: busyPersonalAudioFile
        busy_personal_video_file: busyPersonalVideoFile
        no_answer_announcement_selection: noAnswerAnnouncementSelection
        no_answer_personal_audio_file: noAnswerPersonalAudioFile
        no_answer_personal_video_file: noAnswerPersonalVideoFile
        no_answer_alternate_greeting01: noAnswerAlternateGreeting01
        no_answer_alternate_greeting02: noAnswerAlternateGreeting02
        no_answer_alternate_greeting03: noAnswerAlternateGreeting03
        extended_away_enabled: extendedAwayEnabled
        extended_away_disable_message_deposit: extendedAwayDisableMessageDeposit
        extended_away_audio_file: extendedAwayAudioFile
        extended_away_video_file: extendedAwayVideoFile
        no_answer_number_of_rings: noAnswerNumberOfRings
        disable_message_deposit: disableMessageDeposit
        disable_message_deposit_action: disableMessageDepositAction
        greeting_only_forward_destination: greetingOnlyForwardDestination
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("busy_announcement_selection", "busyAnnouncementSelection", str),
        E(
            "busy_personal_audio_file", "busyPersonalAudioFile",
            OCI.AnnouncementFileLevelKey, is_complex=True,
        ),
        E(
            "busy_personal_video_file", "busyPersonalVideoFile",
            OCI.AnnouncementFileLevelKey, is_complex=True,
        ),
        E("no_answer_announcement_selection", "noAnswerAnnouncementSelection", str),
        E(
            "no_answer_personal_audio_file", "noAnswerPersonalAudioFile",
            OCI.AnnouncementFileLevelKey, is_complex=True,
        ),
        E(
            "no_answer_personal_video_file", "noAnswerPersonalVideoFile",
            OCI.AnnouncementFileLevelKey, is_complex=True,
        ),
        E(
            "no_answer_alternate_greeting01", "noAnswerAlternateGreeting01",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify20, is_complex=True,
        ),
        E(
            "no_answer_alternate_greeting02", "noAnswerAlternateGreeting02",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify20, is_complex=True,
        ),
        E(
            "no_answer_alternate_greeting03", "noAnswerAlternateGreeting03",
            OCI.VoiceMessagingAlternateNoAnswerGreetingModify20, is_complex=True,
        ),
        E("extended_away_enabled", "extendedAwayEnabled", bool),
        E("extended_away_disable_message_deposit", "extendedAwayDisableMessageDeposit", bool),
        E(
            "extended_away_audio_file", "extendedAwayAudioFile",
            OCI.AnnouncementFileLevelKey, is_complex=True,
        ),
        E(
            "extended_away_video_file", "extendedAwayVideoFile",
            OCI.AnnouncementFileLevelKey, is_complex=True,
        ),
        E("no_answer_number_of_rings", "noAnswerNumberOfRings", int),
        E("disable_message_deposit", "disableMessageDeposit", bool),
        E("disable_message_deposit_action", "disableMessageDepositAction", str),
        E("greeting_only_forward_destination", "greetingOnlyForwardDestination", str),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    busy_announcement_selection: str = Field(type=str, required=False, mutable=False)
    busy_personal_audio_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    busy_personal_video_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    no_answer_announcement_selection: str = Field(type=str, required=False, mutable=False)
    no_answer_personal_audio_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    no_answer_personal_video_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    no_answer_alternate_greeting01: "OCI.VoiceMessagingAlternateNoAnswerGreetingModify20" = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify20, required=False,
        mutable=False,
    )
    no_answer_alternate_greeting02: "OCI.VoiceMessagingAlternateNoAnswerGreetingModify20" = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify20, required=False,
        mutable=False,
    )
    no_answer_alternate_greeting03: "OCI.VoiceMessagingAlternateNoAnswerGreetingModify20" = Field(
        type=OCI.VoiceMessagingAlternateNoAnswerGreetingModify20, required=False,
        mutable=False,
    )
    extended_away_enabled: bool = Field(type=bool, required=False, mutable=False)
    extended_away_disable_message_deposit: bool = Field(
        type=bool, required=False, mutable=False,
    )
    extended_away_audio_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    extended_away_video_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    no_answer_number_of_rings: int = Field(type=int, required=False, mutable=False)
    disable_message_deposit: bool = Field(type=bool, required=False, mutable=False)
    disable_message_deposit_action: str = Field(type=str, required=False, mutable=False)
    greeting_only_forward_destination: str = Field(type=str, required=False, mutable=False)


class EnterpriseCallCenterEnhancedReportingScheduledReportAddRequest(OCIRequest):
    """
    Request to add an enterprise level call center reporting scheduled report.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after startDate.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        description: description
        report_template: reportTemplate
        schedule: schedule
        sampling_period: samplingPeriod
        start_day_of_week: startDayOfWeek
        report_time_zone: reportTimeZone
        report_date_format: reportDateFormat
        report_time_format: reportTimeFormat
        report_interval: reportInterval
        report_format: reportFormat
        agent: agent
        call_center: callCenter
        dnis: dnis
        call_completion_threshold_seconds: callCompletionThresholdSeconds
        short_duration_threshold_seconds: shortDurationThresholdSeconds
        service_level_threshold_seconds: serviceLevelThresholdSeconds
        service_level_inclusions: serviceLevelInclusions
        service_level_objective_percentage: serviceLevelObjectivePercentage
        abandoned_call_threshold_seconds: abandonedCallThresholdSeconds
        email_address: emailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E(
            "report_template", "reportTemplate", OCI.CallCenterReportTemplateKey,
            is_complex=True, is_required=True,
        ),
        E(
            "schedule", "schedule", OCI.CallCenterReportSchedule, is_complex=True,
            is_required=True,
        ),
        E("sampling_period", "samplingPeriod", str),
        E("start_day_of_week", "startDayOfWeek", str),
        E("report_time_zone", "reportTimeZone", str, is_required=True),
        E("report_date_format", "reportDateFormat", str, is_required=True),
        E("report_time_format", "reportTimeFormat", str, is_required=True),
        E(
            "report_interval", "reportInterval", OCI.CallCenterReportInterval,
            is_complex=True, is_required=True,
        ),
        E("report_format", "reportFormat", str, is_required=True),
        E("agent", "agent", OCI.CallCenterScheduledReportAgentSelection, is_complex=True),
        E(
            "call_center", "callCenter", OCI.CallCenterScheduledReportCallCenterSelection,
            is_complex=True,
        ),
        E("dnis", "dnis", OCI.CallCenterScheduledReportDNISSelection, is_complex=True),
        E("call_completion_threshold_seconds", "callCompletionThresholdSeconds", int),
        E("short_duration_threshold_seconds", "shortDurationThresholdSeconds", int),
        E("service_level_threshold_seconds", "serviceLevelThresholdSeconds", int),
        E(
            "service_level_inclusions", "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusions, is_complex=True,
        ),
        E("service_level_objective_percentage", "serviceLevelObjectivePercentage", int),
        E("abandoned_call_threshold_seconds", "abandonedCallThresholdSeconds", int),
        E("email_address", "emailAddress", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    report_template: "OCI.CallCenterReportTemplateKey" = Field(
        type=OCI.CallCenterReportTemplateKey, required=True, mutable=False,
    )
    schedule: "OCI.CallCenterReportSchedule" = Field(
        type=OCI.CallCenterReportSchedule, required=True, mutable=False,
    )
    sampling_period: str = Field(type=str, required=False, mutable=False)
    start_day_of_week: str = Field(type=str, required=False, mutable=False)
    report_time_zone: str = Field(type=str, required=True, mutable=False)
    report_date_format: str = Field(type=str, required=True, mutable=False)
    report_time_format: str = Field(type=str, required=True, mutable=False)
    report_interval: "OCI.CallCenterReportInterval" = Field(
        type=OCI.CallCenterReportInterval, required=True, mutable=False,
    )
    report_format: str = Field(type=str, required=True, mutable=False)
    agent: "OCI.CallCenterScheduledReportAgentSelection" = Field(
        type=OCI.CallCenterScheduledReportAgentSelection, required=False, mutable=False,
    )
    call_center: "OCI.CallCenterScheduledReportCallCenterSelection" = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection, required=False,
        mutable=False,
    )
    dnis: "OCI.CallCenterScheduledReportDNISSelection" = Field(
        type=OCI.CallCenterScheduledReportDNISSelection, required=False, mutable=False,
    )
    call_completion_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    short_duration_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    service_level_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    service_level_inclusions: "OCI.CallCenterScheduledReportServiceLevelInclusions" = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusions, required=False,
        mutable=False,
    )
    service_level_objective_percentage: int = Field(type=int, required=False, mutable=False)
    abandoned_call_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    email_address: str = Field(type=str, required=True, mutable=False)


class EnterpriseCallCenterEnhancedReportingScheduledReportModifyRequest(OCIRequest):
    """
    Request to modify an enterprise level call center reporting scheduled report.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after startDate.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        new_name: newName
        description: description
        schedule: schedule
        sampling_period: samplingPeriod
        start_day_of_week: startDayOfWeek
        report_time_zone: reportTimeZone
        report_date_format: reportDateFormat
        report_time_format: reportTimeFormat
        report_interval: reportInterval
        report_format: reportFormat
        agent: agent
        call_center: callCenter
        dnis: dnis
        call_completion_threshold_seconds: callCompletionThresholdSeconds
        short_duration_threshold_seconds: shortDurationThresholdSeconds
        service_level_threshold_seconds: serviceLevelThresholdSeconds
        service_level_inclusions: serviceLevelInclusions
        service_level_objective_percentage: serviceLevelObjectivePercentage
        abandoned_call_threshold_seconds: abandonedCallThresholdSeconds
        email_address: emailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("schedule", "schedule", OCI.CallCenterReportSchedule, is_complex=True),
        E("sampling_period", "samplingPeriod", str),
        E("start_day_of_week", "startDayOfWeek", str),
        E("report_time_zone", "reportTimeZone", str),
        E("report_date_format", "reportDateFormat", str),
        E("report_time_format", "reportTimeFormat", str),
        E("report_interval", "reportInterval", OCI.CallCenterReportInterval, is_complex=True),
        E("report_format", "reportFormat", str),
        E("agent", "agent", OCI.CallCenterScheduledReportAgentSelection, is_complex=True),
        E(
            "call_center", "callCenter", OCI.CallCenterScheduledReportCallCenterSelection,
            is_complex=True,
        ),
        E("dnis", "dnis", OCI.CallCenterScheduledReportDNISSelection, is_complex=True),
        E("call_completion_threshold_seconds", "callCompletionThresholdSeconds", int),
        E("short_duration_threshold_seconds", "shortDurationThresholdSeconds", int),
        E(
            "service_level_threshold_seconds", "serviceLevelThresholdSeconds",
            OCI.CallCenterReportServiceLevelThresholdReplacementList, is_complex=True,
        ),
        E(
            "service_level_inclusions", "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusionsModify, is_complex=True,
        ),
        E("service_level_objective_percentage", "serviceLevelObjectivePercentage", int),
        E(
            "abandoned_call_threshold_seconds", "abandonedCallThresholdSeconds",
            OCI.CallCenterReportAbandonedCallThresholdReplacementList, is_complex=True,
        ),
        E(
            "email_address", "emailAddress", OCI.CallCenterReportReplacementEmailList,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    schedule: "OCI.CallCenterReportSchedule" = Field(
        type=OCI.CallCenterReportSchedule, required=False, mutable=False,
    )
    sampling_period: str = Field(type=str, required=False, mutable=False)
    start_day_of_week: str = Field(type=str, required=False, mutable=False)
    report_time_zone: str = Field(type=str, required=False, mutable=False)
    report_date_format: str = Field(type=str, required=False, mutable=False)
    report_time_format: str = Field(type=str, required=False, mutable=False)
    report_interval: "OCI.CallCenterReportInterval" = Field(
        type=OCI.CallCenterReportInterval, required=False, mutable=False,
    )
    report_format: str = Field(type=str, required=False, mutable=False)
    agent: "OCI.CallCenterScheduledReportAgentSelection" = Field(
        type=OCI.CallCenterScheduledReportAgentSelection, required=False, mutable=False,
    )
    call_center: "OCI.CallCenterScheduledReportCallCenterSelection" = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection, required=False,
        mutable=False,
    )
    dnis: "OCI.CallCenterScheduledReportDNISSelection" = Field(
        type=OCI.CallCenterScheduledReportDNISSelection, required=False, mutable=False,
    )
    call_completion_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    short_duration_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    service_level_threshold_seconds: "OCI.CallCenterReportServiceLevelThresholdReplacementList" = Field(
        type=OCI.CallCenterReportServiceLevelThresholdReplacementList, required=False,
        mutable=False,
    )
    service_level_inclusions: "OCI.CallCenterScheduledReportServiceLevelInclusionsModify" = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusionsModify, required=False,
        mutable=False,
    )
    service_level_objective_percentage: int = Field(type=int, required=False, mutable=False)
    abandoned_call_threshold_seconds: "OCI.CallCenterReportAbandonedCallThresholdReplacementList" = Field(
        type=OCI.CallCenterReportAbandonedCallThresholdReplacementList, required=False,
        mutable=False,
    )
    email_address: "OCI.CallCenterReportReplacementEmailList" = Field(
        type=OCI.CallCenterReportReplacementEmailList, required=False, mutable=False,
    )


class EnterpriseSessionAdmissionControlGroupModifyRequest(OCIRequest):
    """
    Request to modify a session admission control group for the enterprise.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        name: name
        new_name: newName
        max_session: maxSession
        max_user_originating_sessions: maxUserOriginatingSessions
        max_user_terminating_sessions: maxUserTerminatingSessions
        reserved_session: reservedSession
        reserved_user_originating_sessions: reservedUserOriginatingSessions
        reserved_user_terminating_sessions: reservedUserTerminatingSessions
        become_default_group: becomeDefaultGroup
        count_intra_sac_group_sessions: countIntraSACGroupSessions
        device_list: deviceList
        block_emergency_and_repair_calls_due_to_sac_limits:
            blockEmergencyAndRepairCallsDueToSACLimits
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("max_session", "maxSession", int),
        E("max_user_originating_sessions", "maxUserOriginatingSessions", int),
        E("max_user_terminating_sessions", "maxUserTerminatingSessions", int),
        E("reserved_session", "reservedSession", int),
        E("reserved_user_originating_sessions", "reservedUserOriginatingSessions", int),
        E("reserved_user_terminating_sessions", "reservedUserTerminatingSessions", int),
        E("become_default_group", "becomeDefaultGroup", bool),
        E("count_intra_sac_group_sessions", "countIntraSACGroupSessions", bool),
        E("device_list", "deviceList", OCI.ReplacementEnterpriseDeviceList, is_complex=True),
        E(
            "block_emergency_and_repair_calls_due_to_sac_limits",
            "blockEmergencyAndRepairCallsDueToSACLimits", bool,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    max_session: int = Field(type=int, required=False, mutable=False)
    max_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    max_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_session: int = Field(type=int, required=False, mutable=False)
    reserved_user_originating_sessions: int = Field(type=int, required=False, mutable=False)
    reserved_user_terminating_sessions: int = Field(type=int, required=False, mutable=False)
    become_default_group: bool = Field(type=bool, required=False, mutable=False)
    count_intra_sac_group_sessions: bool = Field(type=bool, required=False, mutable=False)
    device_list: "OCI.ReplacementEnterpriseDeviceList" = Field(
        type=OCI.ReplacementEnterpriseDeviceList, required=False, mutable=False,
    )
    block_emergency_and_repair_calls_due_to_sac_limits: bool = Field(
        type=bool, required=False, mutable=False,
    )


class GroupAutoAttendantSubmenuAddRequest(OCIRequest):
    """
    Request to add an Auto Attendant submenu instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. This request is
    only valid for Standard auto attendants.

    Attributes:
        service_user_id: serviceUserId
        submenu_id: submenuId
        announcement_selection: announcementSelection
        audio_file: audioFile
        video_file: videoFile
        enable_level_extension_dialing: enableLevelExtensionDialing
        key_configuration: keyConfiguration
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("submenu_id", "submenuId", str, is_required=True),
        E("announcement_selection", "announcementSelection", str, is_required=True),
        E("audio_file", "audioFile", OCI.LabeledMediaFileResource, is_complex=True),
        E("video_file", "videoFile", OCI.LabeledMediaFileResource, is_complex=True),
        E(
            "enable_level_extension_dialing", "enableLevelExtensionDialing", bool,
            is_required=True,
        ),
        E(
            "key_configuration", "keyConfiguration", OCI.AutoAttendantKeyConfiguration19,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    submenu_id: str = Field(type=str, required=True, mutable=False)
    announcement_selection: str = Field(type=str, required=True, mutable=False)
    audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    video_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    enable_level_extension_dialing: bool = Field(type=bool, required=True, mutable=False)
    key_configuration: "OCI.AutoAttendantKeyConfiguration19" = Field(
        type=OCI.AutoAttendantKeyConfiguration19, required=False, mutable=False,
    )


class GroupAutoAttendantSubmenuAddRequest20(OCIRequest):
    """
    Request to add an Auto Attendant submenu instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. This request is
    only valid for Standard auto attendants.

    Attributes:
        service_user_id: serviceUserId
        submenu_id: submenuId
        announcement_selection: announcementSelection
        audio_file: audioFile
        video_file: videoFile
        enable_level_extension_dialing: enableLevelExtensionDialing
        key_configuration: keyConfiguration
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("submenu_id", "submenuId", str, is_required=True),
        E("announcement_selection", "announcementSelection", str, is_required=True),
        E("audio_file", "audioFile", OCI.AnnouncementFileLevelKey, is_complex=True),
        E("video_file", "videoFile", OCI.AnnouncementFileLevelKey, is_complex=True),
        E(
            "enable_level_extension_dialing", "enableLevelExtensionDialing", bool,
            is_required=True,
        ),
        E(
            "key_configuration", "keyConfiguration", OCI.AutoAttendantKeyConfiguration20,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    submenu_id: str = Field(type=str, required=True, mutable=False)
    announcement_selection: str = Field(type=str, required=True, mutable=False)
    audio_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    video_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    enable_level_extension_dialing: bool = Field(type=bool, required=True, mutable=False)
    key_configuration: "OCI.AutoAttendantKeyConfiguration20" = Field(
        type=OCI.AutoAttendantKeyConfiguration20, required=False, mutable=False,
    )


class GroupAutoAttendantSubmenuModifyRequest(OCIRequest):
    """
    Request to modify an Auto Attendant submenu instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. This request is
    only valid for Standard auto attendants.

    Attributes:
        service_user_id: serviceUserId
        submenu_id: submenuId
        new_submenu_id: newSubmenuId
        announcement_selection: announcementSelection
        audio_file: audioFile
        video_file: videoFile
        enable_level_extension_dialing: enableLevelExtensionDialing
        key_configuration: keyConfiguration
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("submenu_id", "submenuId", str, is_required=True),
        E("new_submenu_id", "newSubmenuId", str),
        E("announcement_selection", "announcementSelection", str),
        E("audio_file", "audioFile", OCI.LabeledMediaFileResource, is_complex=True),
        E("video_file", "videoFile", OCI.LabeledMediaFileResource, is_complex=True),
        E("enable_level_extension_dialing", "enableLevelExtensionDialing", bool),
        E(
            "key_configuration", "keyConfiguration",
            OCI.AutoAttendantKeyModifyConfiguration, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    submenu_id: str = Field(type=str, required=True, mutable=False)
    new_submenu_id: str = Field(type=str, required=False, mutable=False)
    announcement_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    video_file: "OCI.LabeledMediaFileResource" = Field(
        type=OCI.LabeledMediaFileResource, required=False, mutable=False,
    )
    enable_level_extension_dialing: bool = Field(type=bool, required=False, mutable=False)
    key_configuration: "OCI.AutoAttendantKeyModifyConfiguration" = Field(
        type=OCI.AutoAttendantKeyModifyConfiguration, required=False, mutable=False,
    )


class GroupAutoAttendantSubmenuModifyRequest20(OCIRequest):
    """
    Request to modify an Auto Attendant submenu instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. This request is
    only valid for Standard auto attendants.

    Attributes:
        service_user_id: serviceUserId
        submenu_id: submenuId
        new_submenu_id: newSubmenuId
        announcement_selection: announcementSelection
        audio_file: audioFile
        video_file: videoFile
        enable_level_extension_dialing: enableLevelExtensionDialing
        key_configuration: keyConfiguration
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("submenu_id", "submenuId", str, is_required=True),
        E("new_submenu_id", "newSubmenuId", str),
        E("announcement_selection", "announcementSelection", str),
        E("audio_file", "audioFile", OCI.AnnouncementFileLevelKey, is_complex=True),
        E("video_file", "videoFile", OCI.AnnouncementFileLevelKey, is_complex=True),
        E("enable_level_extension_dialing", "enableLevelExtensionDialing", bool),
        E(
            "key_configuration", "keyConfiguration",
            OCI.AutoAttendantKeyModifyConfiguration20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    submenu_id: str = Field(type=str, required=True, mutable=False)
    new_submenu_id: str = Field(type=str, required=False, mutable=False)
    announcement_selection: str = Field(type=str, required=False, mutable=False)
    audio_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    video_file: "OCI.AnnouncementFileLevelKey" = Field(
        type=OCI.AnnouncementFileLevelKey, required=False, mutable=False,
    )
    enable_level_extension_dialing: bool = Field(type=bool, required=False, mutable=False)
    key_configuration: "OCI.AutoAttendantKeyModifyConfiguration20" = Field(
        type=OCI.AutoAttendantKeyModifyConfiguration20, required=False, mutable=False,
    )


class GroupCallCenterEnhancedReportingScheduledReportAddRequest(OCIRequest):
    """
    Request to add a group level call center reporting scheduled report.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after startDate.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        description: description
        report_template: reportTemplate
        schedule: schedule
        sampling_period: samplingPeriod
        start_day_of_week: startDayOfWeek
        report_time_zone: reportTimeZone
        report_date_format: reportDateFormat
        report_time_format: reportTimeFormat
        report_interval: reportInterval
        report_format: reportFormat
        agent: agent
        call_center: callCenter
        dnis: dnis
        call_completion_threshold_seconds: callCompletionThresholdSeconds
        short_duration_threshold_seconds: shortDurationThresholdSeconds
        service_level_threshold_seconds: serviceLevelThresholdSeconds
        service_level_inclusions: serviceLevelInclusions
        service_level_objective_percentage: serviceLevelObjectivePercentage
        abandoned_call_threshold_seconds: abandonedCallThresholdSeconds
        email_address: emailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("description", "description", str),
        E(
            "report_template", "reportTemplate", OCI.CallCenterReportTemplateKey,
            is_complex=True, is_required=True,
        ),
        E(
            "schedule", "schedule", OCI.CallCenterReportSchedule, is_complex=True,
            is_required=True,
        ),
        E("sampling_period", "samplingPeriod", str),
        E("start_day_of_week", "startDayOfWeek", str),
        E("report_time_zone", "reportTimeZone", str, is_required=True),
        E("report_date_format", "reportDateFormat", str, is_required=True),
        E("report_time_format", "reportTimeFormat", str, is_required=True),
        E(
            "report_interval", "reportInterval", OCI.CallCenterReportInterval,
            is_complex=True, is_required=True,
        ),
        E("report_format", "reportFormat", str, is_required=True),
        E("agent", "agent", OCI.CallCenterScheduledReportAgentSelection, is_complex=True),
        E(
            "call_center", "callCenter", OCI.CallCenterScheduledReportCallCenterSelection,
            is_complex=True,
        ),
        E("dnis", "dnis", OCI.CallCenterScheduledReportDNISSelection, is_complex=True),
        E("call_completion_threshold_seconds", "callCompletionThresholdSeconds", int),
        E("short_duration_threshold_seconds", "shortDurationThresholdSeconds", int),
        E("service_level_threshold_seconds", "serviceLevelThresholdSeconds", int),
        E(
            "service_level_inclusions", "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusions, is_complex=True,
        ),
        E("service_level_objective_percentage", "serviceLevelObjectivePercentage", int),
        E("abandoned_call_threshold_seconds", "abandonedCallThresholdSeconds", int),
        E("email_address", "emailAddress", str, is_required=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    report_template: "OCI.CallCenterReportTemplateKey" = Field(
        type=OCI.CallCenterReportTemplateKey, required=True, mutable=False,
    )
    schedule: "OCI.CallCenterReportSchedule" = Field(
        type=OCI.CallCenterReportSchedule, required=True, mutable=False,
    )
    sampling_period: str = Field(type=str, required=False, mutable=False)
    start_day_of_week: str = Field(type=str, required=False, mutable=False)
    report_time_zone: str = Field(type=str, required=True, mutable=False)
    report_date_format: str = Field(type=str, required=True, mutable=False)
    report_time_format: str = Field(type=str, required=True, mutable=False)
    report_interval: "OCI.CallCenterReportInterval" = Field(
        type=OCI.CallCenterReportInterval, required=True, mutable=False,
    )
    report_format: str = Field(type=str, required=True, mutable=False)
    agent: "OCI.CallCenterScheduledReportAgentSelection" = Field(
        type=OCI.CallCenterScheduledReportAgentSelection, required=False, mutable=False,
    )
    call_center: "OCI.CallCenterScheduledReportCallCenterSelection" = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection, required=False,
        mutable=False,
    )
    dnis: "OCI.CallCenterScheduledReportDNISSelection" = Field(
        type=OCI.CallCenterScheduledReportDNISSelection, required=False, mutable=False,
    )
    call_completion_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    short_duration_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    service_level_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    service_level_inclusions: "OCI.CallCenterScheduledReportServiceLevelInclusions" = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusions, required=False,
        mutable=False,
    )
    service_level_objective_percentage: int = Field(type=int, required=False, mutable=False)
    abandoned_call_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    email_address: str = Field(type=str, required=True, mutable=False)


class GroupCallCenterEnhancedReportingScheduledReportModifyRequest(OCIRequest):
    """
    Request to modify a group level call center reporting scheduled report.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after startDate.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        name: name
        new_name: newName
        description: description
        schedule: schedule
        sampling_period: samplingPeriod
        start_day_of_week: startDayOfWeek
        report_time_zone: reportTimeZone
        report_date_format: reportDateFormat
        report_time_format: reportTimeFormat
        report_interval: reportInterval
        report_format: reportFormat
        agent: agent
        call_center: callCenter
        dnis: dnis
        call_completion_threshold_seconds: callCompletionThresholdSeconds
        short_duration_threshold_seconds: shortDurationThresholdSeconds
        service_level_threshold_seconds: serviceLevelThresholdSeconds
        service_level_inclusions: serviceLevelInclusions
        service_level_objective_percentage: serviceLevelObjectivePercentage
        abandoned_call_threshold_seconds: abandonedCallThresholdSeconds
        email_address: emailAddress
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("schedule", "schedule", OCI.CallCenterReportSchedule, is_complex=True),
        E("sampling_period", "samplingPeriod", str),
        E("start_day_of_week", "startDayOfWeek", str),
        E("report_time_zone", "reportTimeZone", str),
        E("report_date_format", "reportDateFormat", str),
        E("report_time_format", "reportTimeFormat", str),
        E("report_interval", "reportInterval", OCI.CallCenterReportInterval, is_complex=True),
        E("report_format", "reportFormat", str),
        E("agent", "agent", OCI.CallCenterScheduledReportAgentSelection, is_complex=True),
        E(
            "call_center", "callCenter", OCI.CallCenterScheduledReportCallCenterSelection,
            is_complex=True,
        ),
        E("dnis", "dnis", OCI.CallCenterScheduledReportDNISSelection, is_complex=True),
        E("call_completion_threshold_seconds", "callCompletionThresholdSeconds", int),
        E("short_duration_threshold_seconds", "shortDurationThresholdSeconds", int),
        E(
            "service_level_threshold_seconds", "serviceLevelThresholdSeconds",
            OCI.CallCenterReportServiceLevelThresholdReplacementList, is_complex=True,
        ),
        E(
            "service_level_inclusions", "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusionsModify, is_complex=True,
        ),
        E("service_level_objective_percentage", "serviceLevelObjectivePercentage", int),
        E(
            "abandoned_call_threshold_seconds", "abandonedCallThresholdSeconds",
            OCI.CallCenterReportAbandonedCallThresholdReplacementList, is_complex=True,
        ),
        E(
            "email_address", "emailAddress", OCI.CallCenterReportReplacementEmailList,
            is_complex=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    schedule: "OCI.CallCenterReportSchedule" = Field(
        type=OCI.CallCenterReportSchedule, required=False, mutable=False,
    )
    sampling_period: str = Field(type=str, required=False, mutable=False)
    start_day_of_week: str = Field(type=str, required=False, mutable=False)
    report_time_zone: str = Field(type=str, required=False, mutable=False)
    report_date_format: str = Field(type=str, required=False, mutable=False)
    report_time_format: str = Field(type=str, required=False, mutable=False)
    report_interval: "OCI.CallCenterReportInterval" = Field(
        type=OCI.CallCenterReportInterval, required=False, mutable=False,
    )
    report_format: str = Field(type=str, required=False, mutable=False)
    agent: "OCI.CallCenterScheduledReportAgentSelection" = Field(
        type=OCI.CallCenterScheduledReportAgentSelection, required=False, mutable=False,
    )
    call_center: "OCI.CallCenterScheduledReportCallCenterSelection" = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection, required=False,
        mutable=False,
    )
    dnis: "OCI.CallCenterScheduledReportDNISSelection" = Field(
        type=OCI.CallCenterScheduledReportDNISSelection, required=False, mutable=False,
    )
    call_completion_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    short_duration_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    service_level_threshold_seconds: "OCI.CallCenterReportServiceLevelThresholdReplacementList" = Field(
        type=OCI.CallCenterReportServiceLevelThresholdReplacementList, required=False,
        mutable=False,
    )
    service_level_inclusions: "OCI.CallCenterScheduledReportServiceLevelInclusionsModify" = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusionsModify, required=False,
        mutable=False,
    )
    service_level_objective_percentage: int = Field(type=int, required=False, mutable=False)
    abandoned_call_threshold_seconds: "OCI.CallCenterReportAbandonedCallThresholdReplacementList" = Field(
        type=OCI.CallCenterReportAbandonedCallThresholdReplacementList, required=False,
        mutable=False,
    )
    email_address: "OCI.CallCenterReportReplacementEmailList" = Field(
        type=OCI.CallCenterReportReplacementEmailList, required=False, mutable=False,
    )


class GroupCallCenterModifyAnnouncementRequest16(OCIRequest):
    """
    Modify a call center's announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        play_entrance_message: playEntranceMessage
        mandatory_entrance_message: mandatoryEntranceMessage
        entrance_audio_message_selection: entranceAudioMessageSelection
        entrance_message_audio_file: entranceMessageAudioFile
        entrance_video_message_selection: entranceVideoMessageSelection
        entrance_message_video_file: entranceMessageVideoFile
        play_periodic_comfort_message: playPeriodicComfortMessage
        time_between_comfort_messages_seconds: timeBetweenComfortMessagesSeconds
        periodic_comfort_audio_message_selection: periodicComfortAudioMessageSelection
        periodic_comfort_message_audio_file: periodicComfortMessageAudioFile
        periodic_comfort_video_message_selection: periodicComfortVideoMessageSelection
        periodic_comfort_message_video_file: periodicComfortMessageVideoFile
        enable_media_on_hold_for_queued_calls: enableMediaOnHoldForQueuedCalls
        media_on_hold_source: mediaOnHoldSource
        media_on_hold_use_alternate_source_for_internal_calls:
            mediaOnHoldUseAlternateSourceForInternalCalls
        media_on_hold_internal_source: mediaOnHoldInternalSource
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("play_entrance_message", "playEntranceMessage", bool),
        E("mandatory_entrance_message", "mandatoryEntranceMessage", bool),
        E("entrance_audio_message_selection", "entranceAudioMessageSelection", str),
        E(
            "entrance_message_audio_file", "entranceMessageAudioFile",
            OCI.ExtendedMediaFileResource, is_complex=True,
        ),
        E("entrance_video_message_selection", "entranceVideoMessageSelection", str),
        E(
            "entrance_message_video_file", "entranceMessageVideoFile",
            OCI.ExtendedMediaFileResource, is_complex=True,
        ),
        E("play_periodic_comfort_message", "playPeriodicComfortMessage", bool),
        E("time_between_comfort_messages_seconds", "timeBetweenComfortMessagesSeconds", int),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_audio_file", "periodicComfortMessageAudioFile",
            OCI.ExtendedMediaFileResource, is_complex=True,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_video_file", "periodicComfortMessageVideoFile",
            OCI.ExtendedMediaFileResource, is_complex=True,
        ),
        E("enable_media_on_hold_for_queued_calls", "enableMediaOnHoldForQueuedCalls", bool),
        E(
            "media_on_hold_source", "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify16, is_complex=True,
        ),
        E(
            "media_on_hold_use_alternate_source_for_internal_calls",
            "mediaOnHoldUseAlternateSourceForInternalCalls", bool,
        ),
        E(
            "media_on_hold_internal_source", "mediaOnHoldInternalSource",
            OCI.CallCenterMediaOnHoldSourceModify16, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    play_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    mandatory_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    entrance_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    entrance_video_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    play_periodic_comfort_message: bool = Field(type=bool, required=False, mutable=False)
    time_between_comfort_messages_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    periodic_comfort_audio_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_audio_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    periodic_comfort_video_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_video_file: "OCI.ExtendedMediaFileResource" = Field(
        type=OCI.ExtendedMediaFileResource, required=False, mutable=False,
    )
    enable_media_on_hold_for_queued_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    media_on_hold_source: "OCI.CallCenterMediaOnHoldSourceModify16" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify16, required=False, mutable=False,
    )
    media_on_hold_use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    media_on_hold_internal_source: "OCI.CallCenterMediaOnHoldSourceModify16" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify16, required=False, mutable=False,
    )


class GroupCallCenterModifyAnnouncementRequest17(OCIRequest):
    """
    Modify a call center's announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        play_entrance_message: playEntranceMessage
        mandatory_entrance_message: mandatoryEntranceMessage
        entrance_audio_message_selection: entranceAudioMessageSelection
        entrance_message_audio_url_list: entranceMessageAudioUrlList
        entrance_message_audio_file_list: entranceMessageAudioFileList
        entrance_video_message_selection: entranceVideoMessageSelection
        entrance_message_video_url_list: entranceMessageVideoUrlList
        entrance_message_video_file_list: entranceMessageVideoFileList
        play_periodic_comfort_message: playPeriodicComfortMessage
        time_between_comfort_messages_seconds: timeBetweenComfortMessagesSeconds
        periodic_comfort_audio_message_selection: periodicComfortAudioMessageSelection
        periodic_comfort_message_audio_url_list: periodicComfortMessageAudioUrlList
        periodic_comfort_message_audio_file_list: periodicComfortMessageAudioFileList
        periodic_comfort_video_message_selection: periodicComfortVideoMessageSelection
        periodic_comfort_message_video_url_list: periodicComfortMessageVideoUrlList
        periodic_comfort_message_video_file_list: periodicComfortMessageVideoFileList
        enable_media_on_hold_for_queued_calls: enableMediaOnHoldForQueuedCalls
        media_on_hold_source: mediaOnHoldSource
        media_on_hold_use_alternate_source_for_internal_calls:
            mediaOnHoldUseAlternateSourceForInternalCalls
        media_on_hold_internal_source: mediaOnHoldInternalSource
        play_whisper_message: playWhisperMessage
        whisper_audio_message_selection: whisperAudioMessageSelection
        whisper_message_audio_url_list: whisperMessageAudioUrlList
        whisper_message_audio_file_list: whisperMessageAudioFileList
        whisper_video_message_selection: whisperVideoMessageSelection
        whisper_message_video_url_list: whisperMessageVideoUrlList
        whisper_message_video_file_list: whisperMessageVideoFileList
        estimated_wait_message_options_modify: estimatedWaitMessageOptionsModify
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("play_entrance_message", "playEntranceMessage", bool),
        E("mandatory_entrance_message", "mandatoryEntranceMessage", bool),
        E("entrance_audio_message_selection", "entranceAudioMessageSelection", str),
        E(
            "entrance_message_audio_url_list", "entranceMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "entrance_message_audio_file_list", "entranceMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("entrance_video_message_selection", "entranceVideoMessageSelection", str),
        E(
            "entrance_message_video_url_list", "entranceMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "entrance_message_video_file_list", "entranceMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("play_periodic_comfort_message", "playPeriodicComfortMessage", bool),
        E("time_between_comfort_messages_seconds", "timeBetweenComfortMessagesSeconds", int),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_audio_url_list",
            "periodicComfortMessageAudioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "periodic_comfort_message_audio_file_list",
            "periodicComfortMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_video_url_list",
            "periodicComfortMessageVideoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "periodic_comfort_message_video_file_list",
            "periodicComfortMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("enable_media_on_hold_for_queued_calls", "enableMediaOnHoldForQueuedCalls", bool),
        E(
            "media_on_hold_source", "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify17, is_complex=True,
        ),
        E(
            "media_on_hold_use_alternate_source_for_internal_calls",
            "mediaOnHoldUseAlternateSourceForInternalCalls", bool,
        ),
        E(
            "media_on_hold_internal_source", "mediaOnHoldInternalSource",
            OCI.CallCenterMediaOnHoldSourceModify17, is_complex=True,
        ),
        E("play_whisper_message", "playWhisperMessage", bool),
        E("whisper_audio_message_selection", "whisperAudioMessageSelection", str),
        E(
            "whisper_message_audio_url_list", "whisperMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "whisper_message_audio_file_list", "whisperMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("whisper_video_message_selection", "whisperVideoMessageSelection", str),
        E(
            "whisper_message_video_url_list", "whisperMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "whisper_message_video_file_list", "whisperMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E(
            "estimated_wait_message_options_modify", "estimatedWaitMessageOptionsModify",
            OCI.EstimatedWaitMessageOptionsModify, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    play_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    mandatory_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    entrance_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    entrance_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    entrance_video_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    entrance_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    play_periodic_comfort_message: bool = Field(type=bool, required=False, mutable=False)
    time_between_comfort_messages_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    periodic_comfort_audio_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    periodic_comfort_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    periodic_comfort_video_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    periodic_comfort_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    enable_media_on_hold_for_queued_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    media_on_hold_source: "OCI.CallCenterMediaOnHoldSourceModify17" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17, required=False, mutable=False,
    )
    media_on_hold_use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    media_on_hold_internal_source: "OCI.CallCenterMediaOnHoldSourceModify17" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17, required=False, mutable=False,
    )
    play_whisper_message: bool = Field(type=bool, required=False, mutable=False)
    whisper_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    whisper_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    whisper_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    whisper_video_message_selection: str = Field(type=str, required=False, mutable=False)
    whisper_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    whisper_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    estimated_wait_message_options_modify: "OCI.EstimatedWaitMessageOptionsModify" = Field(
        type=OCI.EstimatedWaitMessageOptionsModify, required=False, mutable=False,
    )


class GroupCallCenterModifyAnnouncementRequest20(OCIRequest):
    """
    Modify a call center's announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        play_entrance_message: playEntranceMessage
        mandatory_entrance_message: mandatoryEntranceMessage
        entrance_audio_message_selection: entranceAudioMessageSelection
        entrance_message_audio_url_list: entranceMessageAudioUrlList
        entrance_message_audio_file_list: entranceMessageAudioFileList
        entrance_video_message_selection: entranceVideoMessageSelection
        entrance_message_video_url_list: entranceMessageVideoUrlList
        entrance_message_video_file_list: entranceMessageVideoFileList
        play_periodic_comfort_message: playPeriodicComfortMessage
        time_between_comfort_messages_seconds: timeBetweenComfortMessagesSeconds
        periodic_comfort_audio_message_selection: periodicComfortAudioMessageSelection
        periodic_comfort_message_audio_url_list: periodicComfortMessageAudioUrlList
        periodic_comfort_message_audio_file_list: periodicComfortMessageAudioFileList
        periodic_comfort_video_message_selection: periodicComfortVideoMessageSelection
        periodic_comfort_message_video_url_list: periodicComfortMessageVideoUrlList
        periodic_comfort_message_video_file_list: periodicComfortMessageVideoFileList
        enable_media_on_hold_for_queued_calls: enableMediaOnHoldForQueuedCalls
        media_on_hold_source: mediaOnHoldSource
        media_on_hold_use_alternate_source_for_internal_calls:
            mediaOnHoldUseAlternateSourceForInternalCalls
        media_on_hold_internal_source: mediaOnHoldInternalSource
        play_whisper_message: playWhisperMessage
        whisper_audio_message_selection: whisperAudioMessageSelection
        whisper_message_audio_url_list: whisperMessageAudioUrlList
        whisper_message_audio_file_list: whisperMessageAudioFileList
        whisper_video_message_selection: whisperVideoMessageSelection
        whisper_message_video_url_list: whisperMessageVideoUrlList
        whisper_message_video_file_list: whisperMessageVideoFileList
        estimated_wait_message_options_modify: estimatedWaitMessageOptionsModify
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E("play_entrance_message", "playEntranceMessage", bool),
        E("mandatory_entrance_message", "mandatoryEntranceMessage", bool),
        E("entrance_audio_message_selection", "entranceAudioMessageSelection", str),
        E(
            "entrance_message_audio_url_list", "entranceMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "entrance_message_audio_file_list", "entranceMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("entrance_video_message_selection", "entranceVideoMessageSelection", str),
        E(
            "entrance_message_video_url_list", "entranceMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "entrance_message_video_file_list", "entranceMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("play_periodic_comfort_message", "playPeriodicComfortMessage", bool),
        E("time_between_comfort_messages_seconds", "timeBetweenComfortMessagesSeconds", int),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_audio_url_list",
            "periodicComfortMessageAudioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "periodic_comfort_message_audio_file_list",
            "periodicComfortMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_video_url_list",
            "periodicComfortMessageVideoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "periodic_comfort_message_video_file_list",
            "periodicComfortMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("enable_media_on_hold_for_queued_calls", "enableMediaOnHoldForQueuedCalls", bool),
        E(
            "media_on_hold_source", "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify20, is_complex=True,
        ),
        E(
            "media_on_hold_use_alternate_source_for_internal_calls",
            "mediaOnHoldUseAlternateSourceForInternalCalls", bool,
        ),
        E(
            "media_on_hold_internal_source", "mediaOnHoldInternalSource",
            OCI.CallCenterMediaOnHoldSourceModify20, is_complex=True,
        ),
        E("play_whisper_message", "playWhisperMessage", bool),
        E("whisper_audio_message_selection", "whisperAudioMessageSelection", str),
        E(
            "whisper_message_audio_url_list", "whisperMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "whisper_message_audio_file_list", "whisperMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("whisper_video_message_selection", "whisperVideoMessageSelection", str),
        E(
            "whisper_message_video_url_list", "whisperMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "whisper_message_video_file_list", "whisperMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E(
            "estimated_wait_message_options_modify", "estimatedWaitMessageOptionsModify",
            OCI.EstimatedWaitMessageOptionsModify, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    play_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    mandatory_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    entrance_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    entrance_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    entrance_video_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    entrance_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    play_periodic_comfort_message: bool = Field(type=bool, required=False, mutable=False)
    time_between_comfort_messages_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    periodic_comfort_audio_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    periodic_comfort_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    periodic_comfort_video_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    periodic_comfort_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    enable_media_on_hold_for_queued_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    media_on_hold_source: "OCI.CallCenterMediaOnHoldSourceModify20" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20, required=False, mutable=False,
    )
    media_on_hold_use_alternate_source_for_internal_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    media_on_hold_internal_source: "OCI.CallCenterMediaOnHoldSourceModify20" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20, required=False, mutable=False,
    )
    play_whisper_message: bool = Field(type=bool, required=False, mutable=False)
    whisper_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    whisper_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    whisper_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    whisper_video_message_selection: str = Field(type=str, required=False, mutable=False)
    whisper_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    whisper_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    estimated_wait_message_options_modify: "OCI.EstimatedWaitMessageOptionsModify" = Field(
        type=OCI.EstimatedWaitMessageOptionsModify, required=False, mutable=False,
    )


class GroupCallCenterModifyDNISAnnouncementRequest(OCIRequest):
    """
    Modify a call center DNIS announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
        play_entrance_message: playEntranceMessage
        mandatory_entrance_message: mandatoryEntranceMessage
        entrance_audio_message_selection: entranceAudioMessageSelection
        entrance_message_audio_url_list: entranceMessageAudioUrlList
        entrance_message_audio_file_list: entranceMessageAudioFileList
        entrance_video_message_selection: entranceVideoMessageSelection
        entrance_message_video_url_list: entranceMessageVideoUrlList
        entrance_message_video_file_list: entranceMessageVideoFileList
        play_periodic_comfort_message: playPeriodicComfortMessage
        time_between_comfort_messages_seconds: timeBetweenComfortMessagesSeconds
        periodic_comfort_audio_message_selection: periodicComfortAudioMessageSelection
        periodic_comfort_message_audio_url_list: periodicComfortMessageAudioUrlList
        periodic_comfort_message_audio_file_list: periodicComfortMessageAudioFileList
        periodic_comfort_video_message_selection: periodicComfortVideoMessageSelection
        periodic_comfort_message_video_url_list: periodicComfortMessageVideoUrlList
        periodic_comfort_message_video_file_list: periodicComfortMessageVideoFileList
        enable_media_on_hold_for_queued_calls: enableMediaOnHoldForQueuedCalls
        media_on_hold_source: mediaOnHoldSource
        play_whisper_message: playWhisperMessage
        whisper_audio_message_selection: whisperAudioMessageSelection
        whisper_message_audio_url_list: whisperMessageAudioUrlList
        whisper_message_audio_file_list: whisperMessageAudioFileList
        whisper_video_message_selection: whisperVideoMessageSelection
        whisper_message_video_url_list: whisperMessageVideoUrlList
        whisper_message_video_file_list: whisperMessageVideoFileList
        estimated_wait_message_options_modify: estimatedWaitMessageOptionsModify
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
        E("play_entrance_message", "playEntranceMessage", bool),
        E("mandatory_entrance_message", "mandatoryEntranceMessage", bool),
        E("entrance_audio_message_selection", "entranceAudioMessageSelection", str),
        E(
            "entrance_message_audio_url_list", "entranceMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "entrance_message_audio_file_list", "entranceMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("entrance_video_message_selection", "entranceVideoMessageSelection", str),
        E(
            "entrance_message_video_url_list", "entranceMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "entrance_message_video_file_list", "entranceMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("play_periodic_comfort_message", "playPeriodicComfortMessage", bool),
        E("time_between_comfort_messages_seconds", "timeBetweenComfortMessagesSeconds", int),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_audio_url_list",
            "periodicComfortMessageAudioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "periodic_comfort_message_audio_file_list",
            "periodicComfortMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_video_url_list",
            "periodicComfortMessageVideoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "periodic_comfort_message_video_file_list",
            "periodicComfortMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("enable_media_on_hold_for_queued_calls", "enableMediaOnHoldForQueuedCalls", bool),
        E(
            "media_on_hold_source", "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify17, is_complex=True,
        ),
        E("play_whisper_message", "playWhisperMessage", bool),
        E("whisper_audio_message_selection", "whisperAudioMessageSelection", str),
        E(
            "whisper_message_audio_url_list", "whisperMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "whisper_message_audio_file_list", "whisperMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E("whisper_video_message_selection", "whisperVideoMessageSelection", str),
        E(
            "whisper_message_video_url_list", "whisperMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "whisper_message_video_file_list", "whisperMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify, is_complex=True,
        ),
        E(
            "estimated_wait_message_options_modify", "estimatedWaitMessageOptionsModify",
            OCI.EstimatedWaitMessageOptionsModify, is_complex=True,
        ),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)
    play_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    mandatory_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    entrance_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    entrance_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    entrance_video_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    entrance_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    play_periodic_comfort_message: bool = Field(type=bool, required=False, mutable=False)
    time_between_comfort_messages_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    periodic_comfort_audio_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    periodic_comfort_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    periodic_comfort_video_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    periodic_comfort_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    enable_media_on_hold_for_queued_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    media_on_hold_source: "OCI.CallCenterMediaOnHoldSourceModify17" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17, required=False, mutable=False,
    )
    play_whisper_message: bool = Field(type=bool, required=False, mutable=False)
    whisper_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    whisper_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    whisper_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    whisper_video_message_selection: str = Field(type=str, required=False, mutable=False)
    whisper_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    whisper_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify" = Field(
        type=OCI.CallCenterAnnouncementFileListModify, required=False, mutable=False,
    )
    estimated_wait_message_options_modify: "OCI.EstimatedWaitMessageOptionsModify" = Field(
        type=OCI.EstimatedWaitMessageOptionsModify, required=False, mutable=False,
    )


class GroupCallCenterModifyDNISAnnouncementRequest20(OCIRequest):
    """
    Modify a call center DNIS announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
        play_entrance_message: playEntranceMessage
        mandatory_entrance_message: mandatoryEntranceMessage
        entrance_audio_message_selection: entranceAudioMessageSelection
        entrance_message_audio_url_list: entranceMessageAudioUrlList
        entrance_message_audio_file_list: entranceMessageAudioFileList
        entrance_video_message_selection: entranceVideoMessageSelection
        entrance_message_video_url_list: entranceMessageVideoUrlList
        entrance_message_video_file_list: entranceMessageVideoFileList
        play_periodic_comfort_message: playPeriodicComfortMessage
        time_between_comfort_messages_seconds: timeBetweenComfortMessagesSeconds
        periodic_comfort_audio_message_selection: periodicComfortAudioMessageSelection
        periodic_comfort_message_audio_url_list: periodicComfortMessageAudioUrlList
        periodic_comfort_message_audio_file_list: periodicComfortMessageAudioFileList
        periodic_comfort_video_message_selection: periodicComfortVideoMessageSelection
        periodic_comfort_message_video_url_list: periodicComfortMessageVideoUrlList
        periodic_comfort_message_video_file_list: periodicComfortMessageVideoFileList
        enable_media_on_hold_for_queued_calls: enableMediaOnHoldForQueuedCalls
        media_on_hold_source: mediaOnHoldSource
        play_whisper_message: playWhisperMessage
        whisper_audio_message_selection: whisperAudioMessageSelection
        whisper_message_audio_url_list: whisperMessageAudioUrlList
        whisper_message_audio_file_list: whisperMessageAudioFileList
        whisper_video_message_selection: whisperVideoMessageSelection
        whisper_message_video_url_list: whisperMessageVideoUrlList
        whisper_message_video_file_list: whisperMessageVideoFileList
        estimated_wait_message_options_modify: estimatedWaitMessageOptionsModify
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
        E("play_entrance_message", "playEntranceMessage", bool),
        E("mandatory_entrance_message", "mandatoryEntranceMessage", bool),
        E("entrance_audio_message_selection", "entranceAudioMessageSelection", str),
        E(
            "entrance_message_audio_url_list", "entranceMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "entrance_message_audio_file_list", "entranceMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("entrance_video_message_selection", "entranceVideoMessageSelection", str),
        E(
            "entrance_message_video_url_list", "entranceMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "entrance_message_video_file_list", "entranceMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("play_periodic_comfort_message", "playPeriodicComfortMessage", bool),
        E("time_between_comfort_messages_seconds", "timeBetweenComfortMessagesSeconds", int),
        E(
            "periodic_comfort_audio_message_selection",
            "periodicComfortAudioMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_audio_url_list",
            "periodicComfortMessageAudioUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "periodic_comfort_message_audio_file_list",
            "periodicComfortMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E(
            "periodic_comfort_video_message_selection",
            "periodicComfortVideoMessageSelection", str,
        ),
        E(
            "periodic_comfort_message_video_url_list",
            "periodicComfortMessageVideoUrlList", OCI.CallCenterAnnouncementURLListModify,
            is_complex=True,
        ),
        E(
            "periodic_comfort_message_video_file_list",
            "periodicComfortMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("enable_media_on_hold_for_queued_calls", "enableMediaOnHoldForQueuedCalls", bool),
        E(
            "media_on_hold_source", "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify20, is_complex=True,
        ),
        E("play_whisper_message", "playWhisperMessage", bool),
        E("whisper_audio_message_selection", "whisperAudioMessageSelection", str),
        E(
            "whisper_message_audio_url_list", "whisperMessageAudioUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "whisper_message_audio_file_list", "whisperMessageAudioFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E("whisper_video_message_selection", "whisperVideoMessageSelection", str),
        E(
            "whisper_message_video_url_list", "whisperMessageVideoUrlList",
            OCI.CallCenterAnnouncementURLListModify, is_complex=True,
        ),
        E(
            "whisper_message_video_file_list", "whisperMessageVideoFileList",
            OCI.CallCenterAnnouncementFileListModify20, is_complex=True,
        ),
        E(
            "estimated_wait_message_options_modify", "estimatedWaitMessageOptionsModify",
            OCI.EstimatedWaitMessageOptionsModify, is_complex=True,
        ),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)
    play_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    mandatory_entrance_message: bool = Field(type=bool, required=False, mutable=False)
    entrance_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    entrance_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    entrance_video_message_selection: str = Field(type=str, required=False, mutable=False)
    entrance_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    entrance_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    play_periodic_comfort_message: bool = Field(type=bool, required=False, mutable=False)
    time_between_comfort_messages_seconds: int = Field(
        type=int, required=False, mutable=False,
    )
    periodic_comfort_audio_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    periodic_comfort_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    periodic_comfort_video_message_selection: str = Field(
        type=str, required=False, mutable=False,
    )
    periodic_comfort_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    periodic_comfort_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    enable_media_on_hold_for_queued_calls: bool = Field(
        type=bool, required=False, mutable=False,
    )
    media_on_hold_source: "OCI.CallCenterMediaOnHoldSourceModify20" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20, required=False, mutable=False,
    )
    play_whisper_message: bool = Field(type=bool, required=False, mutable=False)
    whisper_audio_message_selection: str = Field(type=str, required=False, mutable=False)
    whisper_message_audio_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    whisper_message_audio_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    whisper_video_message_selection: str = Field(type=str, required=False, mutable=False)
    whisper_message_video_url_list: "OCI.CallCenterAnnouncementURLListModify" = Field(
        type=OCI.CallCenterAnnouncementURLListModify, required=False, mutable=False,
    )
    whisper_message_video_file_list: "OCI.CallCenterAnnouncementFileListModify20" = Field(
        type=OCI.CallCenterAnnouncementFileListModify20, required=False, mutable=False,
    )
    estimated_wait_message_options_modify: "OCI.EstimatedWaitMessageOptionsModify" = Field(
        type=OCI.EstimatedWaitMessageOptionsModify, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanDigitPlanCallMeNowModifyListRequest(OCIRequest):
    """
    Modify the Call Me Now call permissions for digit patterns for a group default and
    it's departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions, is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingCallingPlanDigitPatternCallMeNowDepartmentPermissionsModify,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions" = Field(
        type=OCI.OutgoingCallingPlanDigitPatternCallMeNowPermissions, required=False,
        mutable=False,
    )
    department_permissions: "List[OCI.OutgoingCallingPlanDigitPatternCallMeNowDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanDigitPlanOriginatingModifyListRequest(OCIRequest):
    """
    Modify the originating permissions for digit patterns for a group default and it's
    departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions, is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingCallingPlanDigitPatternOriginatingDepartmentPermissionsModify,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions" = Field(
        type=OCI.OutgoingCallingPlanDigitPatternOriginatingPermissions, required=False,
        mutable=False,
    )
    department_permissions: "List[OCI.OutgoingCallingPlanDigitPatternOriginatingDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanDigitPlanRedirectingModifyListRequest(OCIRequest):
    """
    Modify the redirecting permissions for digit patterns for a group default and it's
    departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions, is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingCallingPlanDigitPatternRedirectingDepartmentPermissionsModify,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions" = Field(
        type=OCI.OutgoingCallingPlanDigitPatternRedirectingPermissions, required=False,
        mutable=False,
    )
    department_permissions: "List[OCI.OutgoingCallingPlanDigitPatternRedirectingDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanPinholeDigitPlanCallMeNowModifyListRequest(OCIRequest):
    """
    Modify the Call Me Now permissions for Pinhole digit patterns for a group default and
    its departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions, is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowDepartmentPermissionsModify,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions" = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowPermissions, required=False,
        mutable=False,
    )
    department_permissions: "List[OCI.OutgoingPinholeDigitPlanDigitPatternCallMeNowDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanPinholeDigitPlanOriginatingModifyListRequest(OCIRequest):
    """
    Modify the originating permissions for Pinhole digit patterns for a group default and
    its departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions,
            is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingDepartmentPermissionsModify,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions" = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingPermissions,
        required=False, mutable=False,
    )
    department_permissions: "List[OCI.OutgoingPinholeDigitPlanDigitPatternOriginatingDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupOutgoingCallingPlanPinholeDigitPlanRedirectingModifyListRequest(OCIRequest):
    """
    Modify the redirecting permissions for Pinhole digit patterns for a group default and
    its departments.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        group_permissions: groupPermissions
        department_permissions: departmentPermissions
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E(
            "group_permissions", "groupPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions,
            is_complex=True,
        ),
        E(
            "department_permissions", "departmentPermissions",
            OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingDepartmentPermissionsModify,
            is_complex=True, is_array=True,
        ),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    group_permissions: "OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions" = Field(
        type=OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingPermissions,
        required=False, mutable=False,
    )
    department_permissions: "List[OCI.OutgoingPinholeDigitPlanDigitPatternRedirectingDepartmentPermissionsModify]" = Field(
        type=list, required=False, mutable=False,
    )


class GroupRoutePointModifyAnnouncementRequest(OCIRequest):
    """
    Modify a route point's announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        media_on_hold_source: mediaOnHoldSource
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "media_on_hold_source", "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify17, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    media_on_hold_source: "OCI.CallCenterMediaOnHoldSourceModify17" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17, required=False, mutable=False,
    )


class GroupRoutePointModifyAnnouncementRequest20(OCIRequest):
    """
    Modify a route point's announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        media_on_hold_source: mediaOnHoldSource
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "media_on_hold_source", "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify20, is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    media_on_hold_source: "OCI.CallCenterMediaOnHoldSourceModify20" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20, required=False, mutable=False,
    )


class GroupRoutePointModifyDNISAnnouncementRequest(OCIRequest):
    """
    Modify a route point DNIS announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
        media_on_hold_source: mediaOnHoldSource
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
        E(
            "media_on_hold_source", "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify17, is_complex=True,
        ),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)
    media_on_hold_source: "OCI.CallCenterMediaOnHoldSourceModify17" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify17, required=False, mutable=False,
    )


class GroupRoutePointModifyDNISAnnouncementRequest20(OCIRequest):
    """
    Modify a route point DNIS announcement settings.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        dnis_key: dnisKey
        media_on_hold_source: mediaOnHoldSource
    """

    _ELEMENTS = (
        E("dnis_key", "dnisKey", OCI.DNISKey, is_complex=True, is_required=True),
        E(
            "media_on_hold_source", "mediaOnHoldSource",
            OCI.CallCenterMediaOnHoldSourceModify20, is_complex=True,
        ),
    )

    dnis_key: "OCI.DNISKey" = Field(type=OCI.DNISKey, required=True, mutable=False)
    media_on_hold_source: "OCI.CallCenterMediaOnHoldSourceModify20" = Field(
        type=OCI.CallCenterMediaOnHoldSourceModify20, required=False, mutable=False,
    )


class SystemSIPDeviceTypeAddRequest14sp6(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By : ``SystemSIPDeviceTypeAddRequest15()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        tdm_overlay: tdmOverlay
        supports_broad_works_info_for_call_waiting: supportsBroadWorksINFOForCallWaiting
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E(
            "use_business_trunking_contact", "useBusinessTrunkingContact", bool,
            is_required=True,
        ),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions14sp6,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E("tdm_overlay", "tdmOverlay", bool, is_required=True),
        E(
            "supports_broad_works_info_for_call_waiting",
            "supportsBroadWorksINFOForCallWaiting", bool, is_required=True,
        ),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions14sp6" = Field(
        type=OCI.CPEDeviceOptions14sp6, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    tdm_overlay: bool = Field(type=bool, required=True, mutable=False)
    supports_broad_works_info_for_call_waiting: bool = Field(
        type=bool, required=True, mutable=False,
    )


class SystemSIPDeviceTypeAddRequest15(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By : ``SystemSIPDeviceTypeAddRequest16()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        tdm_overlay: tdmOverlay
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E(
            "use_business_trunking_contact", "useBusinessTrunkingContact", bool,
            is_required=True,
        ),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions14sp6,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E("tdm_overlay", "tdmOverlay", bool, is_required=True),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions14sp6" = Field(
        type=OCI.CPEDeviceOptions14sp6, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    tdm_overlay: bool = Field(type=bool, required=True, mutable=False)
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )


class SystemSIPDeviceTypeAddRequest16(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``SystemSIPDeviceTypeAddRequest16sp1()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E(
            "use_business_trunking_contact", "useBusinessTrunkingContact", bool,
            is_required=True,
        ),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E("cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16, is_complex=True),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16" = Field(
        type=OCI.CPEDeviceOptions16, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)


class SystemSIPDeviceTypeAddRequest16sp1(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``SystemSIPDeviceTypeAddRequest17()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E(
            "use_business_trunking_contact", "useBusinessTrunkingContact", bool,
            is_required=True,
        ),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
        E("reset_event", "resetEvent", str),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16sp1" = Field(
        type=OCI.CPEDeviceOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)


class SystemSIPDeviceTypeAddRequest17(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
        E("reset_event", "resetEvent", str),
        E(
            "support_call_center_mime_type", "supportCallCenterMIMEType", bool,
            is_required=True,
        ),
        E("trunk_mode", "trunkMode", str, is_required=True),
        E("add_p_called_party_id", "addPCalledPartyId", bool, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16sp1" = Field(
        type=OCI.CPEDeviceOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=True, mutable=False)
    trunk_mode: str = Field(type=str, required=True, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=True, mutable=False)


class SystemSIPDeviceTypeAddRequest17sp4(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``SystemSIPDeviceTypeAddRequest18()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
        E("reset_event", "resetEvent", str),
        E(
            "support_call_center_mime_type", "supportCallCenterMIMEType", bool,
            is_required=True,
        ),
        E("trunk_mode", "trunkMode", str, is_required=True),
        E("add_p_called_party_id", "addPCalledPartyId", bool, is_required=True),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool, is_required=True,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str, is_required=True,
        ),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16sp1" = Field(
        type=OCI.CPEDeviceOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=True, mutable=False)
    trunk_mode: str = Field(type=str, required=True, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=True, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=True, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )


class SystemSIPDeviceTypeAddRequest18(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode: enable3G4GContinuity Replaced by:
    ``SystemSIPDeviceTypeAddRequest19()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
        enable3_g4_g_continuity: enable3G4GContinuity
        support_emergency_disconnect_control: supportEmergencyDisconnectControl
        device_type_configuration_option: deviceTypeConfigurationOption
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("rfc3264_hold", "RFC3264Hold", bool, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
        E("reset_event", "resetEvent", str),
        E(
            "support_call_center_mime_type", "supportCallCenterMIMEType", bool,
            is_required=True,
        ),
        E("trunk_mode", "trunkMode", str, is_required=True),
        E("add_p_called_party_id", "addPCalledPartyId", bool, is_required=True),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool, is_required=True,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str, is_required=True,
        ),
        E("enable3_g4_g_continuity", "enable3G4GContinuity", bool, is_required=True),
        E(
            "support_emergency_disconnect_control", "supportEmergencyDisconnectControl",
            bool, is_required=True,
        ),
        E(
            "device_type_configuration_option", "deviceTypeConfigurationOption", str,
            is_required=True,
        ),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16sp1" = Field(
        type=OCI.CPEDeviceOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=True, mutable=False)
    trunk_mode: str = Field(type=str, required=True, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=True, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=True, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    enable3_g4_g_continuity: bool = Field(type=bool, required=True, mutable=False)
    support_emergency_disconnect_control: bool = Field(
        type=bool, required=True, mutable=False,
    )
    device_type_configuration_option: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeAddRequest18sp1(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode: enable3G4GContinuity, use value "false" in AS
    data mode The following elements are only used in AS data mode:
    holdAnnouncementMethod, use value "useInactive" in HSS data mode The following element
    values are only applicable in AS data mode: holdNormalization=useRfc3264Hold will
    raise an error in HSS data mode

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        hold_normalization: holdNormalization
        hold_announcement_method: holdAnnouncementMethod
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
        enable3_g4_g_continuity: enable3G4GContinuity
        support_emergency_disconnect_control: supportEmergencyDisconnectControl
        device_type_configuration_option: deviceTypeConfigurationOption
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("hold_normalization", "holdNormalization", str, is_required=True),
        E("hold_announcement_method", "holdAnnouncementMethod", str, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
        E("reset_event", "resetEvent", str),
        E(
            "support_call_center_mime_type", "supportCallCenterMIMEType", bool,
            is_required=True,
        ),
        E("trunk_mode", "trunkMode", str, is_required=True),
        E("add_p_called_party_id", "addPCalledPartyId", bool, is_required=True),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool, is_required=True,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str, is_required=True,
        ),
        E("enable3_g4_g_continuity", "enable3G4GContinuity", bool, is_required=True),
        E(
            "support_emergency_disconnect_control", "supportEmergencyDisconnectControl",
            bool, is_required=True,
        ),
        E(
            "device_type_configuration_option", "deviceTypeConfigurationOption", str,
            is_required=True,
        ),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    hold_normalization: str = Field(type=str, required=True, mutable=False)
    hold_announcement_method: str = Field(type=str, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16sp1" = Field(
        type=OCI.CPEDeviceOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=True, mutable=False)
    trunk_mode: str = Field(type=str, required=True, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=True, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=True, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    enable3_g4_g_continuity: bool = Field(type=bool, required=True, mutable=False)
    support_emergency_disconnect_control: bool = Field(
        type=bool, required=True, mutable=False,
    )
    device_type_configuration_option: str = Field(type=str, required=True, mutable=False)


class SystemSIPDeviceTypeAddRequest19(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode: enable3G4GContinuity, use value "false" in AS
    data mode The following elements are only used in AS data mode:
    holdAnnouncementMethod, use value "useInactive" in HSS data mode supportRFC3398, use
    value "false" in HSS data mode The following element values are only applicable in AS
    data mode: holdNormalization=useRfc3264Hold will raise an error in HSS data mode
    Replaced by: ``SystemSIPDeviceTypeAddRequest19sp1()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        hold_normalization: holdNormalization
        hold_announcement_method: holdAnnouncementMethod
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
        enable3_g4_g_continuity: enable3G4GContinuity
        support_emergency_disconnect_control: supportEmergencyDisconnectControl
        device_type_configuration_option: deviceTypeConfigurationOption
        support_rfc3398: supportRFC3398
        static_line_ordering: staticLineOrdering
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("hold_normalization", "holdNormalization", str, is_required=True),
        E("hold_announcement_method", "holdAnnouncementMethod", str, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
        E("reset_event", "resetEvent", str),
        E(
            "support_call_center_mime_type", "supportCallCenterMIMEType", bool,
            is_required=True,
        ),
        E("trunk_mode", "trunkMode", str, is_required=True),
        E("add_p_called_party_id", "addPCalledPartyId", bool, is_required=True),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool, is_required=True,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str, is_required=True,
        ),
        E("enable3_g4_g_continuity", "enable3G4GContinuity", bool, is_required=True),
        E(
            "support_emergency_disconnect_control", "supportEmergencyDisconnectControl",
            bool, is_required=True,
        ),
        E(
            "device_type_configuration_option", "deviceTypeConfigurationOption", str,
            is_required=True,
        ),
        E("support_rfc3398", "supportRFC3398", bool, is_required=True),
        E("static_line_ordering", "staticLineOrdering", bool, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    hold_normalization: str = Field(type=str, required=True, mutable=False)
    hold_announcement_method: str = Field(type=str, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16sp1" = Field(
        type=OCI.CPEDeviceOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=True, mutable=False)
    trunk_mode: str = Field(type=str, required=True, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=True, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=True, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    enable3_g4_g_continuity: bool = Field(type=bool, required=True, mutable=False)
    support_emergency_disconnect_control: bool = Field(
        type=bool, required=True, mutable=False,
    )
    device_type_configuration_option: str = Field(type=str, required=True, mutable=False)
    support_rfc3398: bool = Field(type=bool, required=True, mutable=False)
    static_line_ordering: bool = Field(type=bool, required=True, mutable=False)


class SystemSIPDeviceTypeAddRequest19sp1(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode: enable3G4GContinuity, use value "false" in AS
    data mode The following elements are only used in AS data mode:
    holdAnnouncementMethod, use value "useInactive" in HSS data mode supportRFC3398, use
    value "false" in HSS data mode bypassMediaTreatment, use value "false" in HSS data
    mode The following element values are only applicable in AS data mode:
    holdNormalization=useRfc3264Hold will raise an error in HSS data mode Replaced by:
    ``SystemSIPDeviceTypeAddRequest20()``

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        hold_normalization: holdNormalization
        hold_announcement_method: holdAnnouncementMethod
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
        enable3_g4_g_continuity: enable3G4GContinuity
        support_emergency_disconnect_control: supportEmergencyDisconnectControl
        device_type_configuration_option: deviceTypeConfigurationOption
        support_rfc3398: supportRFC3398
        static_line_ordering: staticLineOrdering
        bypass_media_treatment: bypassMediaTreatment
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("hold_normalization", "holdNormalization", str, is_required=True),
        E("hold_announcement_method", "holdAnnouncementMethod", str, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
        E("reset_event", "resetEvent", str),
        E(
            "support_call_center_mime_type", "supportCallCenterMIMEType", bool,
            is_required=True,
        ),
        E("trunk_mode", "trunkMode", str, is_required=True),
        E("add_p_called_party_id", "addPCalledPartyId", bool, is_required=True),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool, is_required=True,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str, is_required=True,
        ),
        E("enable3_g4_g_continuity", "enable3G4GContinuity", bool, is_required=True),
        E(
            "support_emergency_disconnect_control", "supportEmergencyDisconnectControl",
            bool, is_required=True,
        ),
        E(
            "device_type_configuration_option", "deviceTypeConfigurationOption", str,
            is_required=True,
        ),
        E("support_rfc3398", "supportRFC3398", bool, is_required=True),
        E("static_line_ordering", "staticLineOrdering", bool, is_required=True),
        E("bypass_media_treatment", "bypassMediaTreatment", bool, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    hold_normalization: str = Field(type=str, required=True, mutable=False)
    hold_announcement_method: str = Field(type=str, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16sp1" = Field(
        type=OCI.CPEDeviceOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=True, mutable=False)
    trunk_mode: str = Field(type=str, required=True, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=True, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=True, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    enable3_g4_g_continuity: bool = Field(type=bool, required=True, mutable=False)
    support_emergency_disconnect_control: bool = Field(
        type=bool, required=True, mutable=False,
    )
    device_type_configuration_option: str = Field(type=str, required=True, mutable=False)
    support_rfc3398: bool = Field(type=bool, required=True, mutable=False)
    static_line_ordering: bool = Field(type=bool, required=True, mutable=False)
    bypass_media_treatment: bool = Field(type=bool, required=True, mutable=False)


class SystemSIPDeviceTypeAddRequest20(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode: enable3G4GContinuity, use value "false" in AS
    data mode The following elements are only used in AS data mode:
    holdAnnouncementMethod, use value "useInactive" in HSS data mode supportRFC3398, use
    value "false" in HSS data mode supportClientSessionInfo, use value "false" in HSS data
    mode supportCallInfoConferenceSubscriptionURI, use value "false" in HSS data mode
    supportRemotePartyInfo, use value "false" in HSS data mode The following element
    values are only applicable in AS data mode: holdNormalization=useRfc3264Hold will
    raise an error in HSS data mode

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        hold_normalization: holdNormalization
        hold_announcement_method: holdAnnouncementMethod
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
        enable3_g4_g_continuity: enable3G4GContinuity
        support_emergency_disconnect_control: supportEmergencyDisconnectControl
        device_type_configuration_option: deviceTypeConfigurationOption
        support_rfc3398: supportRFC3398
        static_line_ordering: staticLineOrdering
        support_client_session_info: supportClientSessionInfo
        support_call_info_conference_subscription_uri:
            supportCallInfoConferenceSubscriptionURI
        support_remote_party_info: supportRemotePartyInfo
        support_visual_device_management: supportVisualDeviceManagement
        bypass_media_treatment: bypassMediaTreatment
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("hold_normalization", "holdNormalization", str, is_required=True),
        E("hold_announcement_method", "holdAnnouncementMethod", str, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
        E("reset_event", "resetEvent", str),
        E(
            "support_call_center_mime_type", "supportCallCenterMIMEType", bool,
            is_required=True,
        ),
        E("trunk_mode", "trunkMode", str, is_required=True),
        E("add_p_called_party_id", "addPCalledPartyId", bool, is_required=True),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool, is_required=True,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str, is_required=True,
        ),
        E("enable3_g4_g_continuity", "enable3G4GContinuity", bool, is_required=True),
        E(
            "support_emergency_disconnect_control", "supportEmergencyDisconnectControl",
            bool, is_required=True,
        ),
        E(
            "device_type_configuration_option", "deviceTypeConfigurationOption", str,
            is_required=True,
        ),
        E("support_rfc3398", "supportRFC3398", bool, is_required=True),
        E("static_line_ordering", "staticLineOrdering", bool, is_required=True),
        E("support_client_session_info", "supportClientSessionInfo", bool, is_required=True),
        E(
            "support_call_info_conference_subscription_uri",
            "supportCallInfoConferenceSubscriptionURI", bool, is_required=True,
        ),
        E("support_remote_party_info", "supportRemotePartyInfo", bool, is_required=True),
        E(
            "support_visual_device_management", "supportVisualDeviceManagement", bool,
            is_required=True,
        ),
        E("bypass_media_treatment", "bypassMediaTreatment", bool, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    hold_normalization: str = Field(type=str, required=True, mutable=False)
    hold_announcement_method: str = Field(type=str, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16sp1" = Field(
        type=OCI.CPEDeviceOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=True, mutable=False)
    trunk_mode: str = Field(type=str, required=True, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=True, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=True, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    enable3_g4_g_continuity: bool = Field(type=bool, required=True, mutable=False)
    support_emergency_disconnect_control: bool = Field(
        type=bool, required=True, mutable=False,
    )
    device_type_configuration_option: str = Field(type=str, required=True, mutable=False)
    support_rfc3398: bool = Field(type=bool, required=True, mutable=False)
    static_line_ordering: bool = Field(type=bool, required=True, mutable=False)
    support_client_session_info: bool = Field(type=bool, required=True, mutable=False)
    support_call_info_conference_subscription_uri: bool = Field(
        type=bool, required=True, mutable=False,
    )
    support_remote_party_info: bool = Field(type=bool, required=True, mutable=False)
    support_visual_device_management: bool = Field(type=bool, required=True, mutable=False)
    bypass_media_treatment: bool = Field(type=bool, required=True, mutable=False)


class SystemSIPDeviceTypeAddRequest21(OCIRequest):
    """
    Request to add a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode: enhancedForICS, use value "false" in AS data
    mode supports3G4GContinuity, use value "false" in AS data mode publishesOwnPresence,
    use value "false" in AS data mode The following elements are only used in AS data
    mode: holdAnnouncementMethod, use value "useInactive" in HSS data mode supportRFC3398,
    use value "false" in HSS data mode supportClientSessionInfo, use value "false" in HSS
    data mode supportCallInfoConferenceSubscriptionURI, use value "false" in HSS data mode
    supportRemotePartyInfo, use value "false" in HSS data mode The following element
    values are only applicable in AS data mode: holdNormalization=useRfc3264Hold will
    raise an error in HSS data mode The following elements are only used in AS data mode
    and ignored in HSS data mode: supportCauseParameter

    Attributes:
        device_type: deviceType
        number_of_ports: numberOfPorts
        profile: profile
        registration_capable: registrationCapable
        is_conference_device: isConferenceDevice
        is_mobility_manager_device: isMobilityManagerDevice
        is_music_on_hold_device: isMusicOnHoldDevice
        hold_normalization: holdNormalization
        hold_announcement_method: holdAnnouncementMethod
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
        enhanced_for_ics: enhancedForICS
        support_emergency_disconnect_control: supportEmergencyDisconnectControl
        device_type_configuration_option: deviceTypeConfigurationOption
        support_rfc3398: supportRFC3398
        static_line_ordering: staticLineOrdering
        support_client_session_info: supportClientSessionInfo
        support_call_info_conference_subscription_uri:
            supportCallInfoConferenceSubscriptionURI
        support_remote_party_info: supportRemotePartyInfo
        support_visual_device_management: supportVisualDeviceManagement
        bypass_media_treatment: bypassMediaTreatment
        supports3_g4_g_continuity: supports3G4GContinuity
        publishes_own_presence: publishesOwnPresence
        support_cause_parameter: supportCauseParameter
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E(
            "number_of_ports", "numberOfPorts", OCI.UnboundedPositiveInt, is_complex=True,
            is_required=True,
        ),
        E("profile", "profile", str, is_required=True),
        E("registration_capable", "registrationCapable", bool, is_required=True),
        E("is_conference_device", "isConferenceDevice", bool, is_required=True),
        E("is_mobility_manager_device", "isMobilityManagerDevice", bool, is_required=True),
        E("is_music_on_hold_device", "isMusicOnHoldDevice", bool, is_required=True),
        E("hold_normalization", "holdNormalization", str, is_required=True),
        E("hold_announcement_method", "holdAnnouncementMethod", str, is_required=True),
        E("is_trusted", "isTrusted", bool, is_required=True),
        E("e164_capable", "E164Capable", bool, is_required=True),
        E("route_advance", "routeAdvance", bool, is_required=True),
        E("forwarding_override", "forwardingOverride", bool, is_required=True),
        E("wireless_integration", "wirelessIntegration", bool, is_required=True),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool, is_required=True),
        E("pbx_integration", "PBXIntegration", bool, is_required=True),
        E("static_registration_capable", "staticRegistrationCapable", bool, is_required=True),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str, is_required=True),
        E("authenticate_refer", "authenticateRefer", bool, is_required=True),
        E("auto_config_soft_client", "autoConfigSoftClient", bool, is_required=True),
        E("authentication_mode", "authenticationMode", str, is_required=True),
        E(
            "requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection",
            bool, is_required=True,
        ),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool, is_required=True,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool, is_required=True),
        E(
            "use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide",
            bool, is_required=True,
        ),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool, is_required=True),
        E("reset_event", "resetEvent", str),
        E(
            "support_call_center_mime_type", "supportCallCenterMIMEType", bool,
            is_required=True,
        ),
        E("trunk_mode", "trunkMode", str, is_required=True),
        E("add_p_called_party_id", "addPCalledPartyId", bool, is_required=True),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool, is_required=True,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str, is_required=True,
        ),
        E("enhanced_for_ics", "enhancedForICS", bool, is_required=True),
        E(
            "support_emergency_disconnect_control", "supportEmergencyDisconnectControl",
            bool, is_required=True,
        ),
        E(
            "device_type_configuration_option", "deviceTypeConfigurationOption", str,
            is_required=True,
        ),
        E("support_rfc3398", "supportRFC3398", bool, is_required=True),
        E("static_line_ordering", "staticLineOrdering", bool, is_required=True),
        E("support_client_session_info", "supportClientSessionInfo", bool, is_required=True),
        E(
            "support_call_info_conference_subscription_uri",
            "supportCallInfoConferenceSubscriptionURI", bool, is_required=True,
        ),
        E("support_remote_party_info", "supportRemotePartyInfo", bool, is_required=True),
        E(
            "support_visual_device_management", "supportVisualDeviceManagement", bool,
            is_required=True,
        ),
        E("bypass_media_treatment", "bypassMediaTreatment", bool, is_required=True),
        E("supports3_g4_g_continuity", "supports3G4GContinuity", bool, is_required=True),
        E("publishes_own_presence", "publishesOwnPresence", bool, is_required=True),
        E("support_cause_parameter", "supportCauseParameter", bool, is_required=True),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    number_of_ports: "OCI.UnboundedPositiveInt" = Field(
        type=OCI.UnboundedPositiveInt, required=True, mutable=False,
    )
    profile: str = Field(type=str, required=True, mutable=False)
    registration_capable: bool = Field(type=bool, required=True, mutable=False)
    is_conference_device: bool = Field(type=bool, required=True, mutable=False)
    is_mobility_manager_device: bool = Field(type=bool, required=True, mutable=False)
    is_music_on_hold_device: bool = Field(type=bool, required=True, mutable=False)
    hold_normalization: str = Field(type=str, required=True, mutable=False)
    hold_announcement_method: str = Field(type=str, required=True, mutable=False)
    is_trusted: bool = Field(type=bool, required=True, mutable=False)
    e164_capable: bool = Field(type=bool, required=True, mutable=False)
    route_advance: bool = Field(type=bool, required=True, mutable=False)
    forwarding_override: bool = Field(type=bool, required=True, mutable=False)
    wireless_integration: bool = Field(type=bool, required=True, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=True, mutable=False)
    pbx_integration: bool = Field(type=bool, required=True, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=True, mutable=False)
    cpe_device_options: "OCI.CPEDeviceOptions16sp1" = Field(
        type=OCI.CPEDeviceOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=True, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=True, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=True, mutable=False)
    authentication_mode: str = Field(type=str, required=True, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=True, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=True, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=True, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=True, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=True, mutable=False)
    trunk_mode: str = Field(type=str, required=True, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=True, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=True, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=True, mutable=False,
    )
    enhanced_for_ics: bool = Field(type=bool, required=True, mutable=False)
    support_emergency_disconnect_control: bool = Field(
        type=bool, required=True, mutable=False,
    )
    device_type_configuration_option: str = Field(type=str, required=True, mutable=False)
    support_rfc3398: bool = Field(type=bool, required=True, mutable=False)
    static_line_ordering: bool = Field(type=bool, required=True, mutable=False)
    support_client_session_info: bool = Field(type=bool, required=True, mutable=False)
    support_call_info_conference_subscription_uri: bool = Field(
        type=bool, required=True, mutable=False,
    )
    support_remote_party_info: bool = Field(type=bool, required=True, mutable=False)
    support_visual_device_management: bool = Field(type=bool, required=True, mutable=False)
    bypass_media_treatment: bool = Field(type=bool, required=True, mutable=False)
    supports3_g4_g_continuity: bool = Field(type=bool, required=True, mutable=False)
    publishes_own_presence: bool = Field(type=bool, required=True, mutable=False)
    support_cause_parameter: bool = Field(type=bool, required=True, mutable=False)


class SystemSIPDeviceTypeModifyRequest(OCIRequest):
    """
    Request to modify a sip device type.

    The following elements are not changeable: numberOfPorts SignalingAddressType
    isConferenceDevice isMusicOnHoldDevice

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        is_obsolete: isObsolete
        registration_capable: registrationCapable
        authentication_override: authenticationOverride
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("is_obsolete", "isObsolete", bool),
        E("registration_capable", "registrationCapable", bool),
        E("authentication_override", "authenticationOverride", bool),
        E("rfc3264_hold", "RFC3264Hold", bool),
        E("is_trusted", "isTrusted", bool),
        E("e164_capable", "E164Capable", bool),
        E("route_advance", "routeAdvance", bool),
        E("forwarding_override", "forwardingOverride", bool),
        E("wireless_integration", "wirelessIntegration", bool),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool),
        E("pbx_integration", "PBXIntegration", bool),
        E("use_business_trunking_contact", "useBusinessTrunkingContact", bool),
        E("static_registration_capable", "staticRegistrationCapable", bool),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceModifyOptions,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    is_obsolete: bool = Field(type=bool, required=False, mutable=False)
    registration_capable: bool = Field(type=bool, required=False, mutable=False)
    authentication_override: bool = Field(type=bool, required=False, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=False, mutable=False)
    is_trusted: bool = Field(type=bool, required=False, mutable=False)
    e164_capable: bool = Field(type=bool, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    forwarding_override: bool = Field(type=bool, required=False, mutable=False)
    wireless_integration: bool = Field(type=bool, required=False, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=False, mutable=False)
    pbx_integration: bool = Field(type=bool, required=False, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=False, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=False, mutable=False)
    cpe_device_options: "OCI.CPEDeviceModifyOptions" = Field(
        type=OCI.CPEDeviceModifyOptions, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=False, mutable=False)


class SystemSIPDeviceTypeModifyRequest14sp2(OCIRequest):
    """
    Request to modify a sip device type.

    The following elements are not changeable: numberOfPorts SignalingAddressType
    isConferenceDevice isMusicOnHoldDevice isMobilityManagerDevice

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By : ``SystemSIPDeviceTypeModifyRequest15()``

    Attributes:
        device_type: deviceType
        is_obsolete: isObsolete
        registration_capable: registrationCapable
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        tdm_overlay: tdmOverlay
        supports_broad_works_info_for_call_waiting: supportsBroadWorksINFOForCallWaiting
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("is_obsolete", "isObsolete", bool),
        E("registration_capable", "registrationCapable", bool),
        E("rfc3264_hold", "RFC3264Hold", bool),
        E("is_trusted", "isTrusted", bool),
        E("e164_capable", "E164Capable", bool),
        E("route_advance", "routeAdvance", bool),
        E("forwarding_override", "forwardingOverride", bool),
        E("wireless_integration", "wirelessIntegration", bool),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool),
        E("pbx_integration", "PBXIntegration", bool),
        E("use_business_trunking_contact", "useBusinessTrunkingContact", bool),
        E("static_registration_capable", "staticRegistrationCapable", bool),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceModifyOptions,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str),
        E("authenticate_refer", "authenticateRefer", bool),
        E("auto_config_soft_client", "autoConfigSoftClient", bool),
        E("authentication_mode", "authenticationMode", str),
        E("tdm_overlay", "tdmOverlay", bool),
        E(
            "supports_broad_works_info_for_call_waiting",
            "supportsBroadWorksINFOForCallWaiting", bool,
        ),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    is_obsolete: bool = Field(type=bool, required=False, mutable=False)
    registration_capable: bool = Field(type=bool, required=False, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=False, mutable=False)
    is_trusted: bool = Field(type=bool, required=False, mutable=False)
    e164_capable: bool = Field(type=bool, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    forwarding_override: bool = Field(type=bool, required=False, mutable=False)
    wireless_integration: bool = Field(type=bool, required=False, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=False, mutable=False)
    pbx_integration: bool = Field(type=bool, required=False, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=False, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=False, mutable=False)
    cpe_device_options: "OCI.CPEDeviceModifyOptions" = Field(
        type=OCI.CPEDeviceModifyOptions, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=False, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=False, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=False, mutable=False)
    authentication_mode: str = Field(type=str, required=False, mutable=False)
    tdm_overlay: bool = Field(type=bool, required=False, mutable=False)
    supports_broad_works_info_for_call_waiting: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemSIPDeviceTypeModifyRequest15(OCIRequest):
    """
    Request to modify a sip device type.

    The following elements are not changeable: numberOfPorts SignalingAddressType
    isConferenceDevice isMusicOnHoldDevice isMobilityManagerDevice

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By : ``SystemSIPDeviceTypeModifyRequest16()``

    Attributes:
        device_type: deviceType
        is_obsolete: isObsolete
        registration_capable: registrationCapable
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        tdm_overlay: tdmOverlay
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("is_obsolete", "isObsolete", bool),
        E("registration_capable", "registrationCapable", bool),
        E("rfc3264_hold", "RFC3264Hold", bool),
        E("is_trusted", "isTrusted", bool),
        E("e164_capable", "E164Capable", bool),
        E("route_advance", "routeAdvance", bool),
        E("forwarding_override", "forwardingOverride", bool),
        E("wireless_integration", "wirelessIntegration", bool),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool),
        E("pbx_integration", "PBXIntegration", bool),
        E("use_business_trunking_contact", "useBusinessTrunkingContact", bool),
        E("static_registration_capable", "staticRegistrationCapable", bool),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceModifyOptions,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str),
        E("authenticate_refer", "authenticateRefer", bool),
        E("auto_config_soft_client", "autoConfigSoftClient", bool),
        E("authentication_mode", "authenticationMode", str),
        E("tdm_overlay", "tdmOverlay", bool),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool),
        E("use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    is_obsolete: bool = Field(type=bool, required=False, mutable=False)
    registration_capable: bool = Field(type=bool, required=False, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=False, mutable=False)
    is_trusted: bool = Field(type=bool, required=False, mutable=False)
    e164_capable: bool = Field(type=bool, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    forwarding_override: bool = Field(type=bool, required=False, mutable=False)
    wireless_integration: bool = Field(type=bool, required=False, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=False, mutable=False)
    pbx_integration: bool = Field(type=bool, required=False, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=False, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=False, mutable=False)
    cpe_device_options: "OCI.CPEDeviceModifyOptions" = Field(
        type=OCI.CPEDeviceModifyOptions, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=False, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=False, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=False, mutable=False)
    authentication_mode: str = Field(type=str, required=False, mutable=False)
    tdm_overlay: bool = Field(type=bool, required=False, mutable=False)
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=False, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemSIPDeviceTypeModifyRequest16(OCIRequest):
    """
    Request to modify a sip device type.

    The following elements are not changeable: numberOfPorts SignalingAddressType
    isConferenceDevice isMusicOnHoldDevice isMobilityManagerDevice

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. Replaced by:
    ``SystemSIPDeviceTypeModifyRequest16sp1()``

    Attributes:
        device_type: deviceType
        is_obsolete: isObsolete
        registration_capable: registrationCapable
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("is_obsolete", "isObsolete", bool),
        E("registration_capable", "registrationCapable", bool),
        E("rfc3264_hold", "RFC3264Hold", bool),
        E("is_trusted", "isTrusted", bool),
        E("e164_capable", "E164Capable", bool),
        E("route_advance", "routeAdvance", bool),
        E("forwarding_override", "forwardingOverride", bool),
        E("wireless_integration", "wirelessIntegration", bool),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool),
        E("pbx_integration", "PBXIntegration", bool),
        E("use_business_trunking_contact", "useBusinessTrunkingContact", bool),
        E("static_registration_capable", "staticRegistrationCapable", bool),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceModifyOptions16,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str),
        E("authenticate_refer", "authenticateRefer", bool),
        E("auto_config_soft_client", "autoConfigSoftClient", bool),
        E("authentication_mode", "authenticationMode", str),
        E("requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection", bool),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool),
        E("use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide", bool),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    is_obsolete: bool = Field(type=bool, required=False, mutable=False)
    registration_capable: bool = Field(type=bool, required=False, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=False, mutable=False)
    is_trusted: bool = Field(type=bool, required=False, mutable=False)
    e164_capable: bool = Field(type=bool, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    forwarding_override: bool = Field(type=bool, required=False, mutable=False)
    wireless_integration: bool = Field(type=bool, required=False, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=False, mutable=False)
    pbx_integration: bool = Field(type=bool, required=False, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=False, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=False, mutable=False)
    cpe_device_options: "OCI.CPEDeviceModifyOptions16" = Field(
        type=OCI.CPEDeviceModifyOptions16, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=False, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=False, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=False, mutable=False)
    authentication_mode: str = Field(type=str, required=False, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=False, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=False, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=False, mutable=False)


class SystemSIPDeviceTypeModifyRequest16sp1(OCIRequest):
    """
    Request to modify a sip device type.

    The following elements are not changeable: numberOfPorts SignalingAddressType
    isConferenceDevice isMusicOnHoldDevice isMobilityManagerDevice

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        device_type: deviceType
        is_obsolete: isObsolete
        registration_capable: registrationCapable
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        use_business_trunking_contact: useBusinessTrunkingContact
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("is_obsolete", "isObsolete", bool),
        E("registration_capable", "registrationCapable", bool),
        E("rfc3264_hold", "RFC3264Hold", bool),
        E("is_trusted", "isTrusted", bool),
        E("e164_capable", "E164Capable", bool),
        E("route_advance", "routeAdvance", bool),
        E("forwarding_override", "forwardingOverride", bool),
        E("wireless_integration", "wirelessIntegration", bool),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool),
        E("pbx_integration", "PBXIntegration", bool),
        E("use_business_trunking_contact", "useBusinessTrunkingContact", bool),
        E("static_registration_capable", "staticRegistrationCapable", bool),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceModifyOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str),
        E("authenticate_refer", "authenticateRefer", bool),
        E("auto_config_soft_client", "autoConfigSoftClient", bool),
        E("authentication_mode", "authenticationMode", str),
        E("requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection", bool),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool),
        E("use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide", bool),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool),
        E("reset_event", "resetEvent", str),
        E("support_call_center_mime_type", "supportCallCenterMIMEType", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    is_obsolete: bool = Field(type=bool, required=False, mutable=False)
    registration_capable: bool = Field(type=bool, required=False, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=False, mutable=False)
    is_trusted: bool = Field(type=bool, required=False, mutable=False)
    e164_capable: bool = Field(type=bool, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    forwarding_override: bool = Field(type=bool, required=False, mutable=False)
    wireless_integration: bool = Field(type=bool, required=False, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=False, mutable=False)
    pbx_integration: bool = Field(type=bool, required=False, mutable=False)
    use_business_trunking_contact: bool = Field(type=bool, required=False, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=False, mutable=False)
    cpe_device_options: "OCI.CPEDeviceModifyOptions16sp1" = Field(
        type=OCI.CPEDeviceModifyOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=False, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=False, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=False, mutable=False)
    authentication_mode: str = Field(type=str, required=False, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=False, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=False, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=False, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=False, mutable=False)


class SystemSIPDeviceTypeModifyRequest17(OCIRequest):
    """
    Request to modify a sip device type.

    The following elements are not changeable: numberOfPorts SignalingAddressType
    isConferenceDevice isMusicOnHoldDevice isMobilityManagerDevice

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in HSS data mode: enable3G4GContinuity Replaced by:
    ``SystemSIPDeviceTypeModifyRequest19()``

    Attributes:
        device_type: deviceType
        is_obsolete: isObsolete
        registration_capable: registrationCapable
        rfc3264_hold: RFC3264Hold
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
        enable3_g4_g_continuity: enable3G4GContinuity
        support_emergency_disconnect_control: supportEmergencyDisconnectControl
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("is_obsolete", "isObsolete", bool),
        E("registration_capable", "registrationCapable", bool),
        E("rfc3264_hold", "RFC3264Hold", bool),
        E("is_trusted", "isTrusted", bool),
        E("e164_capable", "E164Capable", bool),
        E("route_advance", "routeAdvance", bool),
        E("forwarding_override", "forwardingOverride", bool),
        E("wireless_integration", "wirelessIntegration", bool),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool),
        E("pbx_integration", "PBXIntegration", bool),
        E("static_registration_capable", "staticRegistrationCapable", bool),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceModifyOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str),
        E("authenticate_refer", "authenticateRefer", bool),
        E("auto_config_soft_client", "autoConfigSoftClient", bool),
        E("authentication_mode", "authenticationMode", str),
        E("requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection", bool),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool),
        E("use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide", bool),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool),
        E("reset_event", "resetEvent", str),
        E("support_call_center_mime_type", "supportCallCenterMIMEType", bool),
        E("trunk_mode", "trunkMode", str),
        E("add_p_called_party_id", "addPCalledPartyId", bool),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str,
        ),
        E("enable3_g4_g_continuity", "enable3G4GContinuity", bool),
        E("support_emergency_disconnect_control", "supportEmergencyDisconnectControl", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    is_obsolete: bool = Field(type=bool, required=False, mutable=False)
    registration_capable: bool = Field(type=bool, required=False, mutable=False)
    rfc3264_hold: bool = Field(type=bool, required=False, mutable=False)
    is_trusted: bool = Field(type=bool, required=False, mutable=False)
    e164_capable: bool = Field(type=bool, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    forwarding_override: bool = Field(type=bool, required=False, mutable=False)
    wireless_integration: bool = Field(type=bool, required=False, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=False, mutable=False)
    pbx_integration: bool = Field(type=bool, required=False, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=False, mutable=False)
    cpe_device_options: "OCI.CPEDeviceModifyOptions16sp1" = Field(
        type=OCI.CPEDeviceModifyOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=False, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=False, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=False, mutable=False)
    authentication_mode: str = Field(type=str, required=False, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=False, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=False, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=False, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=False, mutable=False)
    trunk_mode: str = Field(type=str, required=False, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=False, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=False, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    enable3_g4_g_continuity: bool = Field(type=bool, required=False, mutable=False)
    support_emergency_disconnect_control: bool = Field(
        type=bool, required=False, mutable=False,
    )


class SystemSIPDeviceTypeModifyRequest18sp1(OCIRequest):
    """
    Request to modify a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are not changeable: numberOfPorts SignalingAddressType isConferenceDevice
    isMusicOnHoldDevice isMobilityManagerDevice deviceTypeConfigurationOption
    staticLineOrdering The following elements are only used in HSS data mode:
    enable3G4GContinuity The following elements are only used in AS data mode:
    holdAnnouncementMethod supportRFC3398 supportClientSessionInfo
    supportCallInfoConferenceSubscriptionURI supportRemotePartyInfo The following element
    values are only applicable in AS data mode: holdNormalization=useRfc3264Hold will
    raise an error in HSS data mode

    Attributes:
        device_type: deviceType
        is_obsolete: isObsolete
        registration_capable: registrationCapable
        hold_normalization: holdNormalization
        hold_announcement_method: holdAnnouncementMethod
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
        enable3_g4_g_continuity: enable3G4GContinuity
        support_emergency_disconnect_control: supportEmergencyDisconnectControl
        support_rfc3398: supportRFC3398
        support_client_session_info: supportClientSessionInfo
        support_call_info_conference_subscription_uri:
            supportCallInfoConferenceSubscriptionURI
        support_remote_party_info: supportRemotePartyInfo
        support_visual_device_management: supportVisualDeviceManagement
        bypass_media_treatment: bypassMediaTreatment
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("is_obsolete", "isObsolete", bool),
        E("registration_capable", "registrationCapable", bool),
        E("hold_normalization", "holdNormalization", str),
        E("hold_announcement_method", "holdAnnouncementMethod", str),
        E("is_trusted", "isTrusted", bool),
        E("e164_capable", "E164Capable", bool),
        E("route_advance", "routeAdvance", bool),
        E("forwarding_override", "forwardingOverride", bool),
        E("wireless_integration", "wirelessIntegration", bool),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool),
        E("pbx_integration", "PBXIntegration", bool),
        E("static_registration_capable", "staticRegistrationCapable", bool),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceModifyOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str),
        E("authenticate_refer", "authenticateRefer", bool),
        E("auto_config_soft_client", "autoConfigSoftClient", bool),
        E("authentication_mode", "authenticationMode", str),
        E("requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection", bool),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool),
        E("use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide", bool),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool),
        E("reset_event", "resetEvent", str),
        E("support_call_center_mime_type", "supportCallCenterMIMEType", bool),
        E("trunk_mode", "trunkMode", str),
        E("add_p_called_party_id", "addPCalledPartyId", bool),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str,
        ),
        E("enable3_g4_g_continuity", "enable3G4GContinuity", bool),
        E("support_emergency_disconnect_control", "supportEmergencyDisconnectControl", bool),
        E("support_rfc3398", "supportRFC3398", bool),
        E("support_client_session_info", "supportClientSessionInfo", bool),
        E(
            "support_call_info_conference_subscription_uri",
            "supportCallInfoConferenceSubscriptionURI", bool,
        ),
        E("support_remote_party_info", "supportRemotePartyInfo", bool),
        E("support_visual_device_management", "supportVisualDeviceManagement", bool),
        E("bypass_media_treatment", "bypassMediaTreatment", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    is_obsolete: bool = Field(type=bool, required=False, mutable=False)
    registration_capable: bool = Field(type=bool, required=False, mutable=False)
    hold_normalization: str = Field(type=str, required=False, mutable=False)
    hold_announcement_method: str = Field(type=str, required=False, mutable=False)
    is_trusted: bool = Field(type=bool, required=False, mutable=False)
    e164_capable: bool = Field(type=bool, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    forwarding_override: bool = Field(type=bool, required=False, mutable=False)
    wireless_integration: bool = Field(type=bool, required=False, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=False, mutable=False)
    pbx_integration: bool = Field(type=bool, required=False, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=False, mutable=False)
    cpe_device_options: "OCI.CPEDeviceModifyOptions16sp1" = Field(
        type=OCI.CPEDeviceModifyOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=False, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=False, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=False, mutable=False)
    authentication_mode: str = Field(type=str, required=False, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=False, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=False, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=False, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=False, mutable=False)
    trunk_mode: str = Field(type=str, required=False, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=False, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=False, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    enable3_g4_g_continuity: bool = Field(type=bool, required=False, mutable=False)
    support_emergency_disconnect_control: bool = Field(
        type=bool, required=False, mutable=False,
    )
    support_rfc3398: bool = Field(type=bool, required=False, mutable=False)
    support_client_session_info: bool = Field(type=bool, required=False, mutable=False)
    support_call_info_conference_subscription_uri: bool = Field(
        type=bool, required=False, mutable=False,
    )
    support_remote_party_info: bool = Field(type=bool, required=False, mutable=False)
    support_visual_device_management: bool = Field(type=bool, required=False, mutable=False)
    bypass_media_treatment: bool = Field(type=bool, required=False, mutable=False)


class SystemSIPDeviceTypeModifyRequest21(OCIRequest):
    """
    Request to modify a sip device type.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are not changeable: numberOfPorts SignalingAddressType isConferenceDevice
    isMusicOnHoldDevice isMobilityManagerDevice deviceTypeConfigurationOption
    staticLineOrdering The following elements are only used in AS data mode:
    holdAnnouncementMethod supportRFC3398 supportClientSessionInfo
    supportCallInfoConferenceSubscriptionURI supportRemotePartyInfo The following element
    values are only applicable in AS data mode: holdNormalization=useRfc3264Hold will
    raise an error in HSS data mode The following elements are only used in AS data mode
    and ignored in HSS data mode: supportCauseParameter The following elements are only
    used in HSS data mode and ignored in AS mode: enhancedForICS supports3G4GContinuity
    publishesOwnPresence

    Attributes:
        device_type: deviceType
        is_obsolete: isObsolete
        registration_capable: registrationCapable
        hold_normalization: holdNormalization
        hold_announcement_method: holdAnnouncementMethod
        is_trusted: isTrusted
        e164_capable: E164Capable
        route_advance: routeAdvance
        forwarding_override: forwardingOverride
        wireless_integration: wirelessIntegration
        web_based_config_url: webBasedConfigURL
        is_video_capable: isVideoCapable
        pbx_integration: PBXIntegration
        static_registration_capable: staticRegistrationCapable
        cpe_device_options: cpeDeviceOptions
        early_media_support: earlyMediaSupport
        authenticate_refer: authenticateRefer
        auto_config_soft_client: autoConfigSoftClient
        authentication_mode: authenticationMode
        requires_broad_works_digit_collection: requiresBroadWorksDigitCollection
        requires_broad_works_call_waiting_tone: requiresBroadWorksCallWaitingTone
        requires_mwi_subscription: requiresMWISubscription
        use_history_info_header_on_access_side: useHistoryInfoHeaderOnAccessSide
        advice_of_charge_capable: adviceOfChargeCapable
        reset_event: resetEvent
        support_call_center_mime_type: supportCallCenterMIMEType
        trunk_mode: trunkMode
        add_p_called_party_id: addPCalledPartyId
        support_identity_in_update_and_re_invite: supportIdentityInUpdateAndReInvite
        unscreened_presentation_identity_policy: unscreenedPresentationIdentityPolicy
        enhanced_for_ics: enhancedForICS
        support_emergency_disconnect_control: supportEmergencyDisconnectControl
        support_rfc3398: supportRFC3398
        support_client_session_info: supportClientSessionInfo
        support_call_info_conference_subscription_uri:
            supportCallInfoConferenceSubscriptionURI
        support_remote_party_info: supportRemotePartyInfo
        support_visual_device_management: supportVisualDeviceManagement
        bypass_media_treatment: bypassMediaTreatment
        supports3_g4_g_continuity: supports3G4GContinuity
        publishes_own_presence: publishesOwnPresence
        support_cause_parameter: supportCauseParameter
    """

    _ELEMENTS = (
        E("device_type", "deviceType", str, is_required=True),
        E("is_obsolete", "isObsolete", bool),
        E("registration_capable", "registrationCapable", bool),
        E("hold_normalization", "holdNormalization", str),
        E("hold_announcement_method", "holdAnnouncementMethod", str),
        E("is_trusted", "isTrusted", bool),
        E("e164_capable", "E164Capable", bool),
        E("route_advance", "routeAdvance", bool),
        E("forwarding_override", "forwardingOverride", bool),
        E("wireless_integration", "wirelessIntegration", bool),
        E("web_based_config_url", "webBasedConfigURL", str),
        E("is_video_capable", "isVideoCapable", bool),
        E("pbx_integration", "PBXIntegration", bool),
        E("static_registration_capable", "staticRegistrationCapable", bool),
        E(
            "cpe_device_options", "cpeDeviceOptions", OCI.CPEDeviceModifyOptions16sp1,
            is_complex=True,
        ),
        E("early_media_support", "earlyMediaSupport", str),
        E("authenticate_refer", "authenticateRefer", bool),
        E("auto_config_soft_client", "autoConfigSoftClient", bool),
        E("authentication_mode", "authenticationMode", str),
        E("requires_broad_works_digit_collection", "requiresBroadWorksDigitCollection", bool),
        E(
            "requires_broad_works_call_waiting_tone", "requiresBroadWorksCallWaitingTone",
            bool,
        ),
        E("requires_mwi_subscription", "requiresMWISubscription", bool),
        E("use_history_info_header_on_access_side", "useHistoryInfoHeaderOnAccessSide", bool),
        E("advice_of_charge_capable", "adviceOfChargeCapable", bool),
        E("reset_event", "resetEvent", str),
        E("support_call_center_mime_type", "supportCallCenterMIMEType", bool),
        E("trunk_mode", "trunkMode", str),
        E("add_p_called_party_id", "addPCalledPartyId", bool),
        E(
            "support_identity_in_update_and_re_invite",
            "supportIdentityInUpdateAndReInvite", bool,
        ),
        E(
            "unscreened_presentation_identity_policy",
            "unscreenedPresentationIdentityPolicy", str,
        ),
        E("enhanced_for_ics", "enhancedForICS", bool),
        E("support_emergency_disconnect_control", "supportEmergencyDisconnectControl", bool),
        E("support_rfc3398", "supportRFC3398", bool),
        E("support_client_session_info", "supportClientSessionInfo", bool),
        E(
            "support_call_info_conference_subscription_uri",
            "supportCallInfoConferenceSubscriptionURI", bool,
        ),
        E("support_remote_party_info", "supportRemotePartyInfo", bool),
        E("support_visual_device_management", "supportVisualDeviceManagement", bool),
        E("bypass_media_treatment", "bypassMediaTreatment", bool),
        E("supports3_g4_g_continuity", "supports3G4GContinuity", bool),
        E("publishes_own_presence", "publishesOwnPresence", bool),
        E("support_cause_parameter", "supportCauseParameter", bool),
    )

    device_type: str = Field(type=str, required=True, mutable=False)
    is_obsolete: bool = Field(type=bool, required=False, mutable=False)
    registration_capable: bool = Field(type=bool, required=False, mutable=False)
    hold_normalization: str = Field(type=str, required=False, mutable=False)
    hold_announcement_method: str = Field(type=str, required=False, mutable=False)
    is_trusted: bool = Field(type=bool, required=False, mutable=False)
    e164_capable: bool = Field(type=bool, required=False, mutable=False)
    route_advance: bool = Field(type=bool, required=False, mutable=False)
    forwarding_override: bool = Field(type=bool, required=False, mutable=False)
    wireless_integration: bool = Field(type=bool, required=False, mutable=False)
    web_based_config_url: str = Field(type=str, required=False, mutable=False)
    is_video_capable: bool = Field(type=bool, required=False, mutable=False)
    pbx_integration: bool = Field(type=bool, required=False, mutable=False)
    static_registration_capable: bool = Field(type=bool, required=False, mutable=False)
    cpe_device_options: "OCI.CPEDeviceModifyOptions16sp1" = Field(
        type=OCI.CPEDeviceModifyOptions16sp1, required=False, mutable=False,
    )
    early_media_support: str = Field(type=str, required=False, mutable=False)
    authenticate_refer: bool = Field(type=bool, required=False, mutable=False)
    auto_config_soft_client: bool = Field(type=bool, required=False, mutable=False)
    authentication_mode: str = Field(type=str, required=False, mutable=False)
    requires_broad_works_digit_collection: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_broad_works_call_waiting_tone: bool = Field(
        type=bool, required=False, mutable=False,
    )
    requires_mwi_subscription: bool = Field(type=bool, required=False, mutable=False)
    use_history_info_header_on_access_side: bool = Field(
        type=bool, required=False, mutable=False,
    )
    advice_of_charge_capable: bool = Field(type=bool, required=False, mutable=False)
    reset_event: str = Field(type=str, required=False, mutable=False)
    support_call_center_mime_type: bool = Field(type=bool, required=False, mutable=False)
    trunk_mode: str = Field(type=str, required=False, mutable=False)
    add_p_called_party_id: bool = Field(type=bool, required=False, mutable=False)
    support_identity_in_update_and_re_invite: bool = Field(
        type=bool, required=False, mutable=False,
    )
    unscreened_presentation_identity_policy: str = Field(
        type=str, required=False, mutable=False,
    )
    enhanced_for_ics: bool = Field(type=bool, required=False, mutable=False)
    support_emergency_disconnect_control: bool = Field(
        type=bool, required=False, mutable=False,
    )
    support_rfc3398: bool = Field(type=bool, required=False, mutable=False)
    support_client_session_info: bool = Field(type=bool, required=False, mutable=False)
    support_call_info_conference_subscription_uri: bool = Field(
        type=bool, required=False, mutable=False,
    )
    support_remote_party_info: bool = Field(type=bool, required=False, mutable=False)
    support_visual_device_management: bool = Field(type=bool, required=False, mutable=False)
    bypass_media_treatment: bool = Field(type=bool, required=False, mutable=False)
    supports3_g4_g_continuity: bool = Field(type=bool, required=False, mutable=False)
    publishes_own_presence: bool = Field(type=bool, required=False, mutable=False)
    support_cause_parameter: bool = Field(type=bool, required=False, mutable=False)


class UserCallCenterEnhancedReportingScheduledReportModifyRequest(OCIRequest):
    """
    Request to modify a call center reporting scheduled report created by a supervisor.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``. The
    startDate element is adjusted to the first occurrence of the recurrent schedule that
    comes at or after startDate.

    Attributes:
        supervisor_user_id: supervisorUserId
        name: name
        new_name: newName
        description: description
        schedule: schedule
        sampling_period: samplingPeriod
        start_day_of_week: startDayOfWeek
        report_time_zone: reportTimeZone
        report_date_format: reportDateFormat
        report_time_format: reportTimeFormat
        report_interval: reportInterval
        report_format: reportFormat
        agent: agent
        call_center: callCenter
        dnis: dnis
        call_completion_threshold_seconds: callCompletionThresholdSeconds
        short_duration_threshold_seconds: shortDurationThresholdSeconds
        service_level_threshold_seconds: serviceLevelThresholdSeconds
        service_level_inclusions: serviceLevelInclusions
        service_level_objective_percentage: serviceLevelObjectivePercentage
        abandoned_call_threshold_seconds: abandonedCallThresholdSeconds
        email_address: emailAddress
    """

    _ELEMENTS = (
        E("supervisor_user_id", "supervisorUserId", str, is_required=True),
        E("name", "name", str, is_required=True),
        E("new_name", "newName", str),
        E("description", "description", str),
        E("schedule", "schedule", OCI.CallCenterReportSchedule, is_complex=True),
        E("sampling_period", "samplingPeriod", str),
        E("start_day_of_week", "startDayOfWeek", str),
        E("report_time_zone", "reportTimeZone", str),
        E("report_date_format", "reportDateFormat", str),
        E("report_time_format", "reportTimeFormat", str),
        E("report_interval", "reportInterval", OCI.CallCenterReportInterval, is_complex=True),
        E("report_format", "reportFormat", str),
        E("agent", "agent", OCI.CallCenterScheduledReportAgentSelection, is_complex=True),
        E(
            "call_center", "callCenter", OCI.CallCenterScheduledReportCallCenterSelection,
            is_complex=True,
        ),
        E("dnis", "dnis", OCI.CallCenterScheduledReportDNISSelection, is_complex=True),
        E("call_completion_threshold_seconds", "callCompletionThresholdSeconds", int),
        E("short_duration_threshold_seconds", "shortDurationThresholdSeconds", int),
        E(
            "service_level_threshold_seconds", "serviceLevelThresholdSeconds",
            OCI.CallCenterReportServiceLevelThresholdReplacementList, is_complex=True,
        ),
        E(
            "service_level_inclusions", "serviceLevelInclusions",
            OCI.CallCenterScheduledReportServiceLevelInclusionsModify, is_complex=True,
        ),
        E("service_level_objective_percentage", "serviceLevelObjectivePercentage", int),
        E(
            "abandoned_call_threshold_seconds", "abandonedCallThresholdSeconds",
            OCI.CallCenterReportAbandonedCallThresholdReplacementList, is_complex=True,
        ),
        E(
            "email_address", "emailAddress", OCI.CallCenterReportReplacementEmailList,
            is_complex=True,
        ),
    )

    supervisor_user_id: str = Field(type=str, required=True, mutable=False)
    name: str = Field(type=str, required=True, mutable=False)
    new_name: str = Field(type=str, required=False, mutable=False)
    description: str = Field(type=str, required=False, mutable=False)
    schedule: "OCI.CallCenterReportSchedule" = Field(
        type=OCI.CallCenterReportSchedule, required=False, mutable=False,
    )
    sampling_period: str = Field(type=str, required=False, mutable=False)
    start_day_of_week: str = Field(type=str, required=False, mutable=False)
    report_time_zone: str = Field(type=str, required=False, mutable=False)
    report_date_format: str = Field(type=str, required=False, mutable=False)
    report_time_format: str = Field(type=str, required=False, mutable=False)
    report_interval: "OCI.CallCenterReportInterval" = Field(
        type=OCI.CallCenterReportInterval, required=False, mutable=False,
    )
    report_format: str = Field(type=str, required=False, mutable=False)
    agent: "OCI.CallCenterScheduledReportAgentSelection" = Field(
        type=OCI.CallCenterScheduledReportAgentSelection, required=False, mutable=False,
    )
    call_center: "OCI.CallCenterScheduledReportCallCenterSelection" = Field(
        type=OCI.CallCenterScheduledReportCallCenterSelection, required=False,
        mutable=False,
    )
    dnis: "OCI.CallCenterScheduledReportDNISSelection" = Field(
        type=OCI.CallCenterScheduledReportDNISSelection, required=False, mutable=False,
    )
    call_completion_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    short_duration_threshold_seconds: int = Field(type=int, required=False, mutable=False)
    service_level_threshold_seconds: "OCI.CallCenterReportServiceLevelThresholdReplacementList" = Field(
        type=OCI.CallCenterReportServiceLevelThresholdReplacementList, required=False,
        mutable=False,
    )
    service_level_inclusions: "OCI.CallCenterScheduledReportServiceLevelInclusionsModify" = Field(
        type=OCI.CallCenterScheduledReportServiceLevelInclusionsModify, required=False,
        mutable=False,
    )
    service_level_objective_percentage: int = Field(type=int, required=False, mutable=False)
    abandoned_call_threshold_seconds: "OCI.CallCenterReportAbandonedCallThresholdReplacementList" = Field(
        type=OCI.CallCenterReportAbandonedCallThresholdReplacementList, required=False,
        mutable=False,
    )
    email_address: "OCI.CallCenterReportReplacementEmailList" = Field(
        type=OCI.CallCenterReportReplacementEmailList, required=False, mutable=False,
    )


class GroupAutoAttendantAddInstanceRequest14(OCIRequest):
    """
    Add a Auto Attendant instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupAutoAttendantAddInstanceRequest16()``

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        enable_video: enableVideo
        business_hours: businessHours
        holiday_schedule_name: holidayScheduleName
        extension_dialing_scope: extensionDialingScope
        name_dialing_scope: nameDialingScope
        name_dialing_entries: nameDialingEntries
        business_hours_menu: businessHoursMenu
        after_hours_menu: afterHoursMenu
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("business_hours", "businessHours", str),
        E("holiday_schedule_name", "holidayScheduleName", str),
        E("extension_dialing_scope", "extensionDialingScope", str, is_required=True),
        E("name_dialing_scope", "nameDialingScope", str, is_required=True),
        E("name_dialing_entries", "nameDialingEntries", str, is_required=True),
        E(
            "business_hours_menu", "businessHoursMenu", OCI.AutoAttendantAddMenu,
            is_complex=True,
        ),
        E("after_hours_menu", "afterHoursMenu", OCI.AutoAttendantAddMenu, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    business_hours: str = Field(type=str, required=False, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=False, mutable=False)
    extension_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_entries: str = Field(type=str, required=True, mutable=False)
    business_hours_menu: "OCI.AutoAttendantAddMenu" = Field(
        type=OCI.AutoAttendantAddMenu, required=False, mutable=False,
    )
    after_hours_menu: "OCI.AutoAttendantAddMenu" = Field(
        type=OCI.AutoAttendantAddMenu, required=False, mutable=False,
    )


class GroupAutoAttendantAddInstanceRequest16(OCIRequest):
    """
    Add a Auto Attendant instance to a group.

    The domain is required in the serviceUserId.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        enable_video: enableVideo
        business_hours: businessHours
        holiday_schedule_name: holidayScheduleName
        extension_dialing_scope: extensionDialingScope
        name_dialing_scope: nameDialingScope
        name_dialing_entries: nameDialingEntries
        business_hours_menu: businessHoursMenu
        after_hours_menu: afterHoursMenu
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("business_hours", "businessHours", str),
        E("holiday_schedule_name", "holidayScheduleName", str),
        E("extension_dialing_scope", "extensionDialingScope", str, is_required=True),
        E("name_dialing_scope", "nameDialingScope", str, is_required=True),
        E("name_dialing_entries", "nameDialingEntries", str, is_required=True),
        E(
            "business_hours_menu", "businessHoursMenu", OCI.AutoAttendantAddMenu16,
            is_complex=True,
        ),
        E("after_hours_menu", "afterHoursMenu", OCI.AutoAttendantAddMenu16, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    business_hours: str = Field(type=str, required=False, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=False, mutable=False)
    extension_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_entries: str = Field(type=str, required=True, mutable=False)
    business_hours_menu: "OCI.AutoAttendantAddMenu16" = Field(
        type=OCI.AutoAttendantAddMenu16, required=False, mutable=False,
    )
    after_hours_menu: "OCI.AutoAttendantAddMenu16" = Field(
        type=OCI.AutoAttendantAddMenu16, required=False, mutable=False,
    )


class GroupAutoAttendantAddInstanceRequest17sp1(OCIRequest):
    """
    Add a Auto Attendant instance to a group.

    The domain is required in the serviceUserId.  Only Group and Enterprise level
    schedules are accepted.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        enable_video: enableVideo
        business_hours: businessHours
        holiday_schedule: holidaySchedule
        extension_dialing_scope: extensionDialingScope
        name_dialing_scope: nameDialingScope
        name_dialing_entries: nameDialingEntries
        business_hours_menu: businessHoursMenu
        after_hours_menu: afterHoursMenu
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("extension_dialing_scope", "extensionDialingScope", str, is_required=True),
        E("name_dialing_scope", "nameDialingScope", str, is_required=True),
        E("name_dialing_entries", "nameDialingEntries", str, is_required=True),
        E(
            "business_hours_menu", "businessHoursMenu", OCI.AutoAttendantAddMenu16,
            is_complex=True,
        ),
        E("after_hours_menu", "afterHoursMenu", OCI.AutoAttendantAddMenu16, is_complex=True),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    extension_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_entries: str = Field(type=str, required=True, mutable=False)
    business_hours_menu: "OCI.AutoAttendantAddMenu16" = Field(
        type=OCI.AutoAttendantAddMenu16, required=False, mutable=False,
    )
    after_hours_menu: "OCI.AutoAttendantAddMenu16" = Field(
        type=OCI.AutoAttendantAddMenu16, required=False, mutable=False,
    )


class GroupAutoAttendantAddInstanceRequest19(OCIRequest):
    """
    Add a Auto Attendant instance to a group.

    The domain is required in the serviceUserId.  Only Group and Enterprise level
    schedules are accepted.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: type, use AutoAttendantType.BASIC in HSS mode.
    holidayMenu.  The following elements are only valid for Standard Auto Attendants:
    holidayMenu

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        enable_video: enableVideo
        business_hours: businessHours
        holiday_schedule: holidaySchedule
        extension_dialing_scope: extensionDialingScope
        name_dialing_scope: nameDialingScope
        name_dialing_entries: nameDialingEntries
        business_hours_menu: businessHoursMenu
        after_hours_menu: afterHoursMenu
        holiday_menu: holidayMenu
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("type", "type", str, is_required=True),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("extension_dialing_scope", "extensionDialingScope", str, is_required=True),
        E("name_dialing_scope", "nameDialingScope", str, is_required=True),
        E("name_dialing_entries", "nameDialingEntries", str, is_required=True),
        E(
            "business_hours_menu", "businessHoursMenu", OCI.AutoAttendantAddMenu19,
            is_complex=True,
        ),
        E("after_hours_menu", "afterHoursMenu", OCI.AutoAttendantAddMenu19, is_complex=True),
        E("holiday_menu", "holidayMenu", OCI.AutoAttendantAddMenu19, is_complex=True),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    type: str = Field(type=str, required=True, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    extension_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_entries: str = Field(type=str, required=True, mutable=False)
    business_hours_menu: "OCI.AutoAttendantAddMenu19" = Field(
        type=OCI.AutoAttendantAddMenu19, required=False, mutable=False,
    )
    after_hours_menu: "OCI.AutoAttendantAddMenu19" = Field(
        type=OCI.AutoAttendantAddMenu19, required=False, mutable=False,
    )
    holiday_menu: "OCI.AutoAttendantAddMenu19" = Field(
        type=OCI.AutoAttendantAddMenu19, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupAutoAttendantAddInstanceRequest20(OCIRequest):
    """
    Add a Auto Attendant instance to a group.

    The domain is required in the serviceUserId.  Only Group and Enterprise level
    schedules are accepted.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: type, use AutoAttendantType.BASIC in HSS mode.
    holidayMenu.  The following elements are only valid for Standard Auto Attendants:
    holidayMenu

    Attributes:
        service_provider_id: serviceProviderId
        group_id: groupId
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        type: type
        first_digit_timeout_seconds: firstDigitTimeoutSeconds
        enable_video: enableVideo
        business_hours: businessHours
        holiday_schedule: holidaySchedule
        extension_dialing_scope: extensionDialingScope
        name_dialing_scope: nameDialingScope
        name_dialing_entries: nameDialingEntries
        business_hours_menu: businessHoursMenu
        after_hours_menu: afterHoursMenu
        holiday_menu: holidayMenu
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_provider_id", "serviceProviderId", str, is_required=True),
        E("group_id", "groupId", str, is_required=True),
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceAddProfile, is_complex=True, is_required=True,
        ),
        E("type", "type", str, is_required=True),
        E("first_digit_timeout_seconds", "firstDigitTimeoutSeconds", int, is_required=True),
        E("enable_video", "enableVideo", bool, is_required=True),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("extension_dialing_scope", "extensionDialingScope", str, is_required=True),
        E("name_dialing_scope", "nameDialingScope", str, is_required=True),
        E("name_dialing_entries", "nameDialingEntries", str, is_required=True),
        E(
            "business_hours_menu", "businessHoursMenu", OCI.AutoAttendantAddMenu20,
            is_complex=True,
        ),
        E("after_hours_menu", "afterHoursMenu", OCI.AutoAttendantAddMenu20, is_complex=True),
        E("holiday_menu", "holidayMenu", OCI.AutoAttendantAddMenu20, is_complex=True),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_provider_id: str = Field(type=str, required=True, mutable=False)
    group_id: str = Field(type=str, required=True, mutable=False)
    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceAddProfile" = Field(
        type=OCI.ServiceInstanceAddProfile, required=True, mutable=False,
    )
    type: str = Field(type=str, required=True, mutable=False)
    first_digit_timeout_seconds: int = Field(type=int, required=True, mutable=False)
    enable_video: bool = Field(type=bool, required=True, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    extension_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_scope: str = Field(type=str, required=True, mutable=False)
    name_dialing_entries: str = Field(type=str, required=True, mutable=False)
    business_hours_menu: "OCI.AutoAttendantAddMenu20" = Field(
        type=OCI.AutoAttendantAddMenu20, required=False, mutable=False,
    )
    after_hours_menu: "OCI.AutoAttendantAddMenu20" = Field(
        type=OCI.AutoAttendantAddMenu20, required=False, mutable=False,
    )
    holiday_menu: "OCI.AutoAttendantAddMenu20" = Field(
        type=OCI.AutoAttendantAddMenu20, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupAutoAttendantModifyInstanceRequest(OCIRequest):
    """
    Request to modify an Auto Attendant instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Replaced By: ``GroupAutoAttendantModifyInstanceRequest16()``

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        enable_video: enableVideo
        business_hours: businessHours
        holiday_schedule_name: holidayScheduleName
        extension_dialing_scope: extensionDialingScope
        name_dialing_scope: nameDialingScope
        name_dialing_entries: nameDialingEntries
        business_hours_menu: businessHoursMenu
        after_hours_menu: afterHoursMenu
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("enable_video", "enableVideo", bool),
        E("business_hours", "businessHours", str),
        E("holiday_schedule_name", "holidayScheduleName", str),
        E("extension_dialing_scope", "extensionDialingScope", str),
        E("name_dialing_scope", "nameDialingScope", str),
        E("name_dialing_entries", "nameDialingEntries", str),
        E(
            "business_hours_menu", "businessHoursMenu", OCI.AutoAttendantModifyMenu,
            is_complex=True,
        ),
        E("after_hours_menu", "afterHoursMenu", OCI.AutoAttendantModifyMenu, is_complex=True),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    enable_video: bool = Field(type=bool, required=False, mutable=False)
    business_hours: str = Field(type=str, required=False, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=False, mutable=False)
    extension_dialing_scope: str = Field(type=str, required=False, mutable=False)
    name_dialing_scope: str = Field(type=str, required=False, mutable=False)
    name_dialing_entries: str = Field(type=str, required=False, mutable=False)
    business_hours_menu: "OCI.AutoAttendantModifyMenu" = Field(
        type=OCI.AutoAttendantModifyMenu, required=False, mutable=False,
    )
    after_hours_menu: "OCI.AutoAttendantModifyMenu" = Field(
        type=OCI.AutoAttendantModifyMenu, required=False, mutable=False,
    )


class GroupAutoAttendantModifyInstanceRequest16(OCIRequest):
    """
    Request to modify an Auto Attendant instance.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``.

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        enable_video: enableVideo
        business_hours: businessHours
        holiday_schedule_name: holidayScheduleName
        extension_dialing_scope: extensionDialingScope
        name_dialing_scope: nameDialingScope
        name_dialing_entries: nameDialingEntries
        business_hours_menu: businessHoursMenu
        after_hours_menu: afterHoursMenu
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("enable_video", "enableVideo", bool),
        E("business_hours", "businessHours", str),
        E("holiday_schedule_name", "holidayScheduleName", str),
        E("extension_dialing_scope", "extensionDialingScope", str),
        E("name_dialing_scope", "nameDialingScope", str),
        E("name_dialing_entries", "nameDialingEntries", str),
        E(
            "business_hours_menu", "businessHoursMenu", OCI.AutoAttendantModifyMenu16,
            is_complex=True,
        ),
        E(
            "after_hours_menu", "afterHoursMenu", OCI.AutoAttendantModifyMenu16,
            is_complex=True,
        ),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    enable_video: bool = Field(type=bool, required=False, mutable=False)
    business_hours: str = Field(type=str, required=False, mutable=False)
    holiday_schedule_name: str = Field(type=str, required=False, mutable=False)
    extension_dialing_scope: str = Field(type=str, required=False, mutable=False)
    name_dialing_scope: str = Field(type=str, required=False, mutable=False)
    name_dialing_entries: str = Field(type=str, required=False, mutable=False)
    business_hours_menu: "OCI.AutoAttendantModifyMenu16" = Field(
        type=OCI.AutoAttendantModifyMenu16, required=False, mutable=False,
    )
    after_hours_menu: "OCI.AutoAttendantModifyMenu16" = Field(
        type=OCI.AutoAttendantModifyMenu16, required=False, mutable=False,
    )


class GroupAutoAttendantModifyInstanceRequest17sp1(OCIRequest):
    """
    Request to modify an Auto Attendant instance.

    Only Group and Enterprise level schedules are accepted.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: holidayMenu.  The following elementsare only
    valid for Standard Auto Attendants: holidayMenu

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        first_digit_timeout_seconds: firstDigitTimeoutSeconds
        enable_video: enableVideo
        business_hours: businessHours
        holiday_schedule: holidaySchedule
        extension_dialing_scope: extensionDialingScope
        name_dialing_scope: nameDialingScope
        name_dialing_entries: nameDialingEntries
        business_hours_menu: businessHoursMenu
        after_hours_menu: afterHoursMenu
        holiday_menu: holidayMenu
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("first_digit_timeout_seconds", "firstDigitTimeoutSeconds", int),
        E("enable_video", "enableVideo", bool),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("extension_dialing_scope", "extensionDialingScope", str),
        E("name_dialing_scope", "nameDialingScope", str),
        E("name_dialing_entries", "nameDialingEntries", str),
        E(
            "business_hours_menu", "businessHoursMenu", OCI.AutoAttendantModifyMenu16,
            is_complex=True,
        ),
        E(
            "after_hours_menu", "afterHoursMenu", OCI.AutoAttendantModifyMenu16,
            is_complex=True,
        ),
        E("holiday_menu", "holidayMenu", OCI.AutoAttendantModifyMenu16, is_complex=True),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    first_digit_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=False, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    extension_dialing_scope: str = Field(type=str, required=False, mutable=False)
    name_dialing_scope: str = Field(type=str, required=False, mutable=False)
    name_dialing_entries: str = Field(type=str, required=False, mutable=False)
    business_hours_menu: "OCI.AutoAttendantModifyMenu16" = Field(
        type=OCI.AutoAttendantModifyMenu16, required=False, mutable=False,
    )
    after_hours_menu: "OCI.AutoAttendantModifyMenu16" = Field(
        type=OCI.AutoAttendantModifyMenu16, required=False, mutable=False,
    )
    holiday_menu: "OCI.AutoAttendantModifyMenu16" = Field(
        type=OCI.AutoAttendantModifyMenu16, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class GroupAutoAttendantModifyInstanceRequest20(OCIRequest):
    """
    Request to modify an Auto Attendant instance.

    Only Group and Enterprise level schedules are accepted.

    The response is either ``SuccessResponse()`` or ``ErrorResponse()``. The following
    elements are only used in AS data mode: holidayMenu.  The following elements are only
    valid for Standard Auto Attendants: holidayMenu

    Attributes:
        service_user_id: serviceUserId
        service_instance_profile: serviceInstanceProfile
        first_digit_timeout_seconds: firstDigitTimeoutSeconds
        enable_video: enableVideo
        business_hours: businessHours
        holiday_schedule: holidaySchedule
        extension_dialing_scope: extensionDialingScope
        name_dialing_scope: nameDialingScope
        name_dialing_entries: nameDialingEntries
        business_hours_menu: businessHoursMenu
        after_hours_menu: afterHoursMenu
        holiday_menu: holidayMenu
        network_class_of_service: networkClassOfService
    """

    _ELEMENTS = (
        E("service_user_id", "serviceUserId", str, is_required=True),
        E(
            "service_instance_profile", "serviceInstanceProfile",
            OCI.ServiceInstanceModifyProfile, is_complex=True,
        ),
        E("first_digit_timeout_seconds", "firstDigitTimeoutSeconds", int),
        E("enable_video", "enableVideo", bool),
        E("business_hours", "businessHours", OCI.TimeSchedule, is_complex=True),
        E("holiday_schedule", "holidaySchedule", OCI.HolidaySchedule, is_complex=True),
        E("extension_dialing_scope", "extensionDialingScope", str),
        E("name_dialing_scope", "nameDialingScope", str),
        E("name_dialing_entries", "nameDialingEntries", str),
        E(
            "business_hours_menu", "businessHoursMenu", OCI.AutoAttendantModifyMenu20,
            is_complex=True,
        ),
        E(
            "after_hours_menu", "afterHoursMenu", OCI.AutoAttendantModifyMenu20,
            is_complex=True,
        ),
        E("holiday_menu", "holidayMenu", OCI.AutoAttendantModifyMenu20, is_complex=True),
        E("network_class_of_service", "networkClassOfService", str),
    )

    service_user_id: str = Field(type=str, required=True, mutable=False)
    service_instance_profile: "OCI.ServiceInstanceModifyProfile" = Field(
        type=OCI.ServiceInstanceModifyProfile, required=False, mutable=False,
    )
    first_digit_timeout_seconds: int = Field(type=int, required=False, mutable=False)
    enable_video: bool = Field(type=bool, required=False, mutable=False)
    business_hours: "OCI.TimeSchedule" = Field(
        type=OCI.TimeSchedule, required=False, mutable=False,
    )
    holiday_schedule: "OCI.HolidaySchedule" = Field(
        type=OCI.HolidaySchedule, required=False, mutable=False,
    )
    extension_dialing_scope: str = Field(type=str, required=False, mutable=False)
    name_dialing_scope: str = Field(type=str, required=False, mutable=False)
    name_dialing_entries: str = Field(type=str, required=False, mutable=False)
    business_hours_menu: "OCI.AutoAttendantModifyMenu20" = Field(
        type=OCI.AutoAttendantModifyMenu20, required=False, mutable=False,
    )
    after_hours_menu: "OCI.AutoAttendantModifyMenu20" = Field(
        type=OCI.AutoAttendantModifyMenu20, required=False, mutable=False,
    )
    holiday_menu: "OCI.AutoAttendantModifyMenu20" = Field(
        type=OCI.AutoAttendantModifyMenu20, required=False, mutable=False,
    )
    network_class_of_service: str = Field(type=str, required=False, mutable=False)


class UserCommPilotExpressSRModifyRequest(OCIRequest):
    """
    Modify the user's commPilot express SR service setting.

    The response is either a ``SuccessResponse()`` or an ``ErrorResponse()``.

    Attributes:
        user_id: userId
        profile: profile
        available_in_office: availableInOffice
        available_out_of_office: availableOutOfOffice
        busy: busy
        unavailable: unavailable
    """

    _ELEMENTS = (
        E("user_id", "userId", str, is_required=True),
        E("profile", "profile", str),
        E(
            "available_in_office", "availableInOffice",
            OCI.CommPilotExpressSRAvailableInOfficeModify, is_complex=True,
        ),
        E(
            "available_out_of_office", "availableOutOfOffice",
            OCI.CommPilotExpressSRAvailableOutOfOfficeModify, is_complex=True,
        ),
        E("busy", "busy", OCI.CommPilotExpressSRBusyModify, is_complex=True),
        E(
            "unavailable", "unavailable", OCI.CommPilotExpressSRUnavailableModify,
            is_complex=True,
        ),
    )

    user_id: str = Field(type=str, required=True, mutable=False)
    profile: str = Field(type=str, required=False, mutable=False)
    available_in_office: "OCI.CommPilotExpressSRAvailableInOfficeModify" = Field(
        type=OCI.CommPilotExpressSRAvailableInOfficeModify, required=False, mutable=False,
    )
    available_out_of_office: "OCI.CommPilotExpressSRAvailableOutOfOfficeModify" = Field(
        type=OCI.CommPilotExpressSRAvailableOutOfOfficeModify, required=False,
        mutable=False,
    )
    busy: "OCI.CommPilotExpressSRBusyModify" = Field(
        type=OCI.CommPilotExpressSRBusyModify, required=False, mutable=False,
    )
    unavailable: "OCI.CommPilotExpressSRUnavailableModify" = Field(
        type=OCI.CommPilotExpressSRUnavailableModify, required=False, mutable=False,
    )


# fmt: on
# end
